【问题标题】:Getting Twitter user details using swift使用 swift 获取 Twitter 用户详细信息
【发布时间】:2016-04-17 17:20:18
【问题描述】:

几天以来我一直在搜索如何根据他/她的 Twitter 帐户获取用户详细信息,我在我的应用程序中使用 twitter 登录 &我在 Swift 中没有找到任何关于此的内容,所以我在问! 如何从 Twitter 获取使用 Parse 登录的用户的用户名、电子邮件和 uprofile 图像,以便将它们保存在解析云上?

【问题讨论】:

    标签: ios swift twitter parse-platform pfuser


    【解决方案1】:

    您可以很容易地访问登录用户的用户名和用户 ID。在大多数 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”。

    祝你好运!

    【讨论】:

    • 如何找到网名??
    【解决方案2】:

    在 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)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 2021-10-12
      • 2015-04-12
      • 1970-01-01
      • 2014-03-30
      相关资源
      最近更新 更多