【问题标题】:Get the twitter profile image in my application in swift 3.0在 swift 3.0 中获取我的应用程序中的 twitter 个人资料图片
【发布时间】:2017-02-10 07:17:54
【问题描述】:

如果我在我的应用中使用 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!)")

错误会显示为

可选(错误域=FHSErrorDomain Code=204 "请求没有 返回任何内容

【问题讨论】:

    标签: ios swift3


    【解决方案1】:

    使用您的 twitter 应用授权用户并获取用户的 id。然后使用这个 url 从 Twitter 获取用户的图片。

    #define TWITTER_PROFILE_WITH_ID(id) [NSString stringWithFormat:@"https://twitter.com/intent/user?user_id=%@",id]
    

    【讨论】:

    • Hi M.K 此行显示 URL 中的个人资料图片。如何使用 JSON 获取个人资料图片和电子邮件 ID。
    • 您只需要个人资料图片对吗?您可以保存此 url,您可以使用 ios 中的任何图像缓存(如 SDWebImage)显示此 url 中的图像。它的工作和测试。如果您需要其他详细信息,那么如果有任何方法可以检索其他用户详细信息,则应该使用结构框架。或者您可以使用 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: &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

    【讨论】:

      猜你喜欢
      • 2015-07-07
      • 2016-01-24
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      相关资源
      最近更新 更多