Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用swift获取Twitter用户详细信息_Swift_Twitter_Parse Platform_Pfuser - Fatal编程技术网

使用swift获取Twitter用户详细信息

使用swift获取Twitter用户详细信息,swift,twitter,parse-platform,pfuser,Swift,Twitter,Parse Platform,Pfuser,几天以来,我一直在搜索如何根据他/她的Twitter帐户获取用户详细信息,我在应用程序中使用Twitter登录 &我还没有在斯威夫特找到任何关于这个的东西,所以我在问! 如何从Twitter上获取使用Parse登录用户的用户名、电子邮件和文件图像,以便将其保存在Parse cloud上?您可以非常轻松地访问登录用户的用户名和用户ID。在大多数Twitter登录方法中,您会看到如下内容: @IBAction func loginTwitter(sender: UIBarButtonItem) {

几天以来,我一直在搜索如何根据他/她的Twitter帐户获取用户详细信息,我在应用程序中使用Twitter登录 &我还没有在斯威夫特找到任何关于这个的东西,所以我在问!
如何从Twitter上获取使用Parse登录用户的用户名、电子邮件和文件图像,以便将其保存在Parse cloud上?

您可以非常轻松地访问登录用户的用户名和用户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\u image\u url\u https”


祝你好运

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

如何找到屏幕名称??