Получить изображение профиля Twitter в моем приложении в Swift 3.0

#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