#ios #swift3
#iOS #swift3
Вопрос:
Если я вошел в систему с помощью Twitter в своем приложении, а не с новым пользователем, войдите только в старого пользователя.проблема в том, что изображение профиля Twitter не попадает в мое приложение.
если я использую в этой строке
let twitterimagedetail:NSString="( FHSTwitterEngine.shared().getProfileImageURLString(forUsername: username as String, andSize: FHSTwitterEngineImageSizeOriginal))" as! NSString
self.splashapp.twitterimagecontent!=twitterimagedetail;
let url = NSURL(string: "(self.splashapp.twitterimagecontent!)")
ошибка будет отображаться как
Необязательно (ошибка Domain = FHSErrorDomain Code = 204 «Запрос не вернул никакого содержимого
Ответ №1:
Авторизуйте пользователя в своем приложении Twitter и получите идентификатор пользователя. Затем используйте этот URL-адрес, чтобы получить изображение пользователя из Twitter.
#define TWITTER_PROFILE_WITH_ID(id) [NSString stringWithFormat:@"https://twitter.com/intent/user?user_id=%@",id]
Комментарии:
1. Привет, М.К. В этой строке отображается изображение профиля в URL. как получить изображение профиля и идентификатор электронной почты с помощью JSON.
2. вам нужно было только изображение профиля, верно? вы можете сохранить этот URL-адрес и отобразить изображение с этого URL-адреса, используя любой кэш изображений в ios, например SDWebImage. он работает и протестирован. если вам нужны другие подробности, вам следует использовать fabric framework, если есть какой-либо способ получить другие данные пользователя. или вы можете использовать Twitter api для получения этих сведений.
Ответ №2:
Вы можете получить эту информацию следующим образом:
var web = "myTwitterAccount"
func consultarTweets(){
self.consultarImagePerfil{ (result)->() in
if let tweets = result as? [String: AnyObject] {
if let a:String = tweets["name"] as? String {
print("Name: ",a)
}
if let a:String = tweets["screen_name"] as? String {
print("ScreenName: ",a)
}
if let a:String = tweets["profile_image_url"] as? String {
print("Profile Image ",a)
}
}
}
}
func consultarImagePerfil(completion: (result: [String : AnyObject])->()) {
let client = TWTRAPIClient()
let statusesShowEndpoint = "https://api.twitter.com/1.1/users/show.json"
let params = ["screen_name" : "(self.web)"]
var clientError : NSError?
let request = client.URLRequestWithMethod("GET", URL: statusesShowEndpoint, parameters: params, error: amp;clientError)
client.sendTwitterRequest(request) { (response, data, connectionError) -> Void in
if connectionError != nil {
print("Error: (connectionError)")
}
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: [])
print("json: (json)")
completion (result: json as! [String : AnyObject])
} catch let jsonError as NSError {
print("json error: (jsonError.localizedDescription)")
}
}
}
И вы можете получить более подробную информацию здесь
https://dev.twitter.com/rest/reference/get/users/show