如何请求检索用户的权限';在ios8中使用twitter工具包1.2.0版发送电子邮件?

如何请求检索用户的权限';在ios8中使用twitter工具包1.2.0版发送电子邮件?,twitter,twitter-oauth,xcode6.1,ios8.1,Twitter,Twitter Oauth,Xcode6.1,Ios8.1,我已经在我的ios应用程序中集成了twitter工具包。我可以在身份验证后登录并轻松查看我的twitter名称,但现在我想检索我的电子邮件地址,所以我使用了TWTRShareEmailViewController,它向用户显示一个返回null的共享电子邮件视图。我浏览了一些文档,他们提到我的应用程序因请求电子邮件许可而被列入白名单,并说要填写此表格,我不知道下一步该怎么办?如何准确地获得i用户电子邮件权限?建议任何帮助。提前谢谢。我也没有找到一个特定的表格要求被列入白名单。我打开了他们的表单链接

我已经在我的ios应用程序中集成了twitter工具包。我可以在身份验证后登录并轻松查看我的twitter名称,但现在我想检索我的电子邮件地址,所以我使用了TWTRShareEmailViewController,它向用户显示一个返回null的共享电子邮件视图。我浏览了一些文档,他们提到我的应用程序因请求电子邮件许可而被列入白名单,并说要填写此表格,我不知道下一步该怎么办?如何准确地获得i用户电子邮件权限?建议任何帮助。提前谢谢。

我也没有找到一个特定的表格要求被列入白名单。我打开了他们的表单链接,并选中了“我有一个API政策问题不在这些要点中”选项。几天后他们回复了我,问了我更多关于应用程序及其应用程序ID的信息。我正在等待他们的回答

编辑:


因此,在几封(大量)带有support@fabric.io还有一些bug我最终被列入了白名单。但是Fabric目前无法提供该选项,因此您必须在上创建一个Twitter应用程序。只需发送一封带有应用程序ID或密钥的邮件。他们可能会问你一个关于你的应用程序的快速描述,而它不应该花那么多时间被列入白名单。祝你好运

我也没有找到具体的表格要求被列入白名单。我打开了他们的表单链接,并选中了“我有一个API政策问题不在这些要点中”选项。几天后他们回复了我,问了我更多关于应用程序及其应用程序ID的信息。我正在等待他们的回答

编辑:


因此,在几封(大量)带有support@fabric.io还有一些bug我最终被列入了白名单。但是Fabric目前无法提供该选项,因此您必须在上创建一个Twitter应用程序。只需发送一封带有应用程序ID或密钥的邮件。他们可能会问你一个关于你的应用程序的快速描述,而它不应该花那么多时间被列入白名单。祝你好运

sdk对话后-feedback@twitter.com
,我的应用程序被列入了白名单。故事是这样的:

  • 将邮件发送到
    sdk-feedback@twitter.com
    提供有关应用程序的一些详细信息,如消费者密钥、应用程序的应用商店链接、隐私政策链接、元数据、如何登录我们的应用程序的说明。在邮件中提及您希望访问应用程序中的用户电子邮件地址

  • 他们将审查您的应用程序,并在2-3个工作日内回复您

  • 一旦他们说你的应用程序被列入白名单,请在Twitter开发者门户中更新你的应用程序设置。登录并:

  • 在“设置”选项卡上,添加服务条款和隐私策略URL
  • 在“权限”选项卡上,将令牌的作用域更改为请求电子邮件。只有当您的应用程序被列入白名单时,才会看到此选项
该编码了:

-(void)requestUserEmail
{
    if ([[Twitter sharedInstance] session]) {

        TWTRShareEmailViewController *shareEmailViewController =
        [[TWTRShareEmailViewController alloc]
         initWithCompletion:^(NSString *email, NSError *error) {
             NSLog(@"Email %@ | Error: %@", email, error);
         }];

        [self presentViewController:shareEmailViewController
                           animated:YES
                         completion:nil];
    } else {
        // Handle user not signed in (e.g. attempt to log in or show an alert)
    }
}

希望对你有帮助

sdk对话后-feedback@twitter.com
,我的应用程序被列入了白名单。故事是这样的:

  • 将邮件发送到
    sdk-feedback@twitter.com
    提供有关应用程序的一些详细信息,如消费者密钥、应用程序的应用商店链接、隐私政策链接、元数据、如何登录我们的应用程序的说明。在邮件中提及您希望访问应用程序中的用户电子邮件地址

  • 他们将审查您的应用程序,并在2-3个工作日内回复您

  • 一旦他们说你的应用程序被列入白名单,请在Twitter开发者门户中更新你的应用程序设置。登录并:

  • 在“设置”选项卡上,添加服务条款和隐私策略URL
  • 在“权限”选项卡上,将令牌的作用域更改为请求电子邮件。只有当您的应用程序被列入白名单时,才会看到此选项
该编码了:

-(void)requestUserEmail
{
    if ([[Twitter sharedInstance] session]) {

        TWTRShareEmailViewController *shareEmailViewController =
        [[TWTRShareEmailViewController alloc]
         initWithCompletion:^(NSString *email, NSError *error) {
             NSLog(@"Email %@ | Error: %@", email, error);
         }];

        [self presentViewController:shareEmailViewController
                           animated:YES
                         completion:nil];
    } else {
        // Handle user not signed in (e.g. attempt to log in or show an alert)
    }
}

希望对你有帮助

sdk发送电子邮件-feedback@twitter.com
首先将您的twitter登录应用程序列入白名单

Swift 3.0代码与结构

@IBAction func btnTwitterAction(_ sender: AnyObject) {
        Twitter.sharedInstance().logIn { (session, error) in
            if session != nil {
                print("signed in as \(session!.userName)");
                let client = TWTRAPIClient.withCurrentUser()
                let request = client.urlRequest(withMethod: "GET",
                                                url: "https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true",
                                                          parameters: ["include_email": "true", "skip_status": "true"],
                                                          error: nil)
                client.sendTwitterRequest(request) { response, data, connectionError in
                    if (connectionError == nil) {

                        do{
                            let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any]
                            print("Json response: ", json)
                            let firstName = json["name"]
                            let lastName = json["screen_name"]
                            let email = json["email"]
                            print("First name: ",firstName)
                            print("Last name: ",lastName)
                            print("Email: ",email)
                        } catch {

                        }

                    }
                    else {
                        print("Error: \(connectionError)")
                    }
                }


            } else {
                NSLog("Login error: %@", error!.localizedDescription);
            }
        }
    }

sdk发送电子邮件-feedback@twitter.com
首先将您的twitter登录应用程序列入白名单

Swift 3.0代码与结构

@IBAction func btnTwitterAction(_ sender: AnyObject) {
        Twitter.sharedInstance().logIn { (session, error) in
            if session != nil {
                print("signed in as \(session!.userName)");
                let client = TWTRAPIClient.withCurrentUser()
                let request = client.urlRequest(withMethod: "GET",
                                                url: "https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true",
                                                          parameters: ["include_email": "true", "skip_status": "true"],
                                                          error: nil)
                client.sendTwitterRequest(request) { response, data, connectionError in
                    if (connectionError == nil) {

                        do{
                            let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any]
                            print("Json response: ", json)
                            let firstName = json["name"]
                            let lastName = json["screen_name"]
                            let email = json["email"]
                            print("First name: ",firstName)
                            print("Last name: ",lastName)
                            print("Email: ",email)
                        } catch {

                        }

                    }
                    else {
                        print("Error: \(connectionError)")
                    }
                }


            } else {
                NSLog("Login error: %@", error!.localizedDescription);
            }
        }
    }

我最近也遇到了同样的问题

如果您正在使用新的twitter工具包,请尝试以下内容

  • 选择权限选项卡
  • 将其设置为只读
代码:

Twitter.sharedInstance().logIn(withMethods: [.webBased,.systemAccounts,.all]) {(session, error) -> Void in

        if (session != nil) {
            print("signed in as \(session?.userName)");

            let client = TWTRAPIClient(userID: session?.userName)
            client.loadUser(withID: (session?.userID)!, completion: { (user, error) in

                let twitterClient = TWTRAPIClient.withCurrentUser()
                let request = twitterClient.urlRequest(withMethod: "GET",
                                                url: "https://api.twitter.com/1.1/account/verify_credentials.json",
                                                parameters: ["include_email": "true", "skip_status": "true"],
                                                error: nil)


                twitterClient.sendTwitterRequest(request) { response, data, connectionError in

                    print(data!)

                    let s :String = String(data: data! as Data, encoding: String.Encoding.utf8)!
                    //
                    //            let json = try JSONSerialization.jsonObject(with: responseData as Data, options: JSONSerialization.ReadingOptions.mutableLeaves) as? [String:AnyObject]
                    //

                    Twitter.sharedInstance().sessionStore.logOutUserID((session?.userID)!)

                    if let data = s.data(using: String.Encoding.utf8) {
                        do {
                            let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String:Any]
                            print(json!)

                        } catch {
                            print("Something went wrong")
                        }
                    }
                }
            })

        } else {
   }

我最近也遇到了同样的问题

如果您正在使用新的twitter工具包,请尝试以下内容

  • 选择权限选项卡
  • 将其设置为只读
代码:

Twitter.sharedInstance().logIn(withMethods: [.webBased,.systemAccounts,.all]) {(session, error) -> Void in

        if (session != nil) {
            print("signed in as \(session?.userName)");

            let client = TWTRAPIClient(userID: session?.userName)
            client.loadUser(withID: (session?.userID)!, completion: { (user, error) in

                let twitterClient = TWTRAPIClient.withCurrentUser()
                let request = twitterClient.urlRequest(withMethod: "GET",
                                                url: "https://api.twitter.com/1.1/account/verify_credentials.json",
                                                parameters: ["include_email": "true", "skip_status": "true"],
                                                error: nil)


                twitterClient.sendTwitterRequest(request) { response, data, connectionError in

                    print(data!)

                    let s :String = String(data: data! as Data, encoding: String.Encoding.utf8)!
                    //
                    //            let json = try JSONSerialization.jsonObject(with: responseData as Data, options: JSONSerialization.ReadingOptions.mutableLeaves) as? [String:AnyObject]
                    //

                    Twitter.sharedInstance().sessionStore.logOutUserID((session?.userID)!)

                    if let data = s.data(using: String.Encoding.utf8) {
                        do {
                            let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String:Any]
                            print(json!)

                        } catch {
                            print("Something went wrong")
                        }
                    }
                }
            })

        } else {
   }

如何在twitter上获取电子邮件id?

第一步:开始

第二步:点击你的应用>点击权限标签

步骤3:在此处选中电子邮件框


如何在twitter上获取电子邮件id?

第一步:开始

第二步:点击你的应用>点击权限标签

步骤3:在此处选中电子邮件框


经过大量研究,我发现twitter不支持ios和android的电子邮件权限,我们已经将twitter登录从我们的应用程序中排除,只使用facebook和链接,因为我们的主要要求是不惜任何代价获取电子邮件。请更新,如果你发现任何黑客在它。谢谢…我今天得到了回复,他们告诉我我问的问题不在正确的地方。他们建议我查看API文档(当然我已经查看了),并搜索他们的开发者讨论(我也查看了)。所以我想我还没准备好被列入白名单。。。当你说他们不支持电子邮件许可时,如果你被推特列入白名单,这也是真的吗?你根本不能问?我想如果我们的应用程序被列入白名单,我们就可以收到电子邮件,因为如果他们向我们提供TWTRShareEmailViewController,那么支持电子邮件权限是有意义的,如果不是,我不明白他们为什么会提供它