Несколько дней я искал, как я могу получить данные пользователя на основе его / ее учетной записи Twitter, я использую вход в Twitter в своем приложении, и я ничего не нашел об этом в Swift, поэтому я спрашиваю! Как я могу получить имя пользователя, адрес электронной почты и изображение профиля пользователя, вошедшего в систему с помощью Parse, из Twitter, чтобы сохранить их в облаке синтаксического анализа?
Получение данных о пользователе Twitter с помощью swift
Ответы (2)
Вы можете легко получить доступ к имени пользователя и идентификатору пользователя, вошедшего в систему. Внутри большинства методов входа в Twitter вы увидите что-то вроде этого:
@IBAction func loginTwitter(sender: UIBarButtonItem) {
Twitter.sharedInstance().logInWithCompletion {
(session, error) -> Void in
if (session != nil) {
print(session?.userName)
print(session?.userID)
} else {
print("error")
}
}
}
Насколько мне известно, Twitter не раскрывает адреса электронной почты пользователей.
Для изображения профиля вам необходимо отправить запрос GET. Вот некоторый код, который может не соответствовать последней версии TwitterKit, но должен, по крайней мере, дать вам представление о том, как должен быть отформатирован запрос.
func getUserInfo(screenName : String){
if let userID = Twitter.sharedInstance().sessionStore.session()!.userID {
let client = TWTRAPIClient(userID: userID)
let url = "https://api.twitter.com/1.1/users/show.json"
let params = ["screen_name": screenName]
var clientError : NSError?
let request = Twitter.sharedInstance().APIClient.URLRequestWithMethod("GET", URL: url, parameters: params, error: &clientError)
client.sendTwitterRequest(request) { (response, data, connectionError) -> Void in
if let someData = data {
do {
let results = try NSJSONSerialization.JSONObjectWithData(someData, options: .AllowFragments) as! NSDictionary
print(results)
} catch {
}
}
}
}
}
Вам нужно просмотреть полученный JSON и найти «profile_image_url_https» на пару уровней ниже.
Удачи!
person
Casey Wagner
schedule
14.01.2016
как узнать псевдоним??
- person Ravi Padsala; 06.08.2018
в Swift 4.2 и Xcode 10.1
Он также получает электронную почту.
import TwitterKit
@IBAction func onClickTwitterSignin(_ sender: UIButton) {
TWTRTwitter.sharedInstance().logIn { (session, error) in
if (session != nil) {
let name = session?.userName ?? ""
print(name)
print(session?.userID ?? "")
print(session?.authToken ?? "")
print(session?.authTokenSecret ?? "")
let client = TWTRAPIClient.withCurrentUser()
client.requestEmail { email, error in
if (email != nil) {
let recivedEmailID = email ?? ""
print(recivedEmailID)
}else {
print("error--: \(String(describing: error?.localizedDescription))");
}
}
//To get profile image url and screen name
let twitterClient = TWTRAPIClient(userID: session?.userID)
twitterClient.loadUser(withID: session?.userID ?? "") {(user, error) in
print(user?.profileImageURL ?? "")
print(user?.profileImageLargeURL ?? "")
print(user?.screenName ?? "")
}
let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "SVC") as! SecondViewController
self.navigationController?.pushViewController(storyboard, animated: true)
}else {
print("error: \(String(describing: error?.localizedDescription))");
}
}
}
Для выхода
@IBAction func onClickTwitterSignout(_ sender: UIButton) {
let store = TWTRTwitter.sharedInstance().sessionStore
if let userID = store.session()?.userID {
print(store.session()?.userID ?? "")
store.logOutUserID(userID)
print(store.session()?.userID ?? "")
self.navigationController?.popToRootViewController(animated: true)
}
}
person
iOS
schedule
14.02.2019