【问题标题】:How to get Twitter User Email using Xamarin.Auth library如何使用 Xamarin.Auth 库获取 Twitter 用户电子邮件
【发布时间】:2018-07-12 19:21:29
【问题描述】:

我正在尝试为我的 xamarin 应用程序实现 twitter 身份验证。我在开发者控制台上检查了向用户请求电子邮件地址选项,但我无法在用户信息中获取电子邮件。我是不是做错了什么

var Twitterauth = new OAuth1Authenticator(

consumerKey: "XXXX",
consumerSecret: "XXX",
requestTokenUrl:new Uri("https://api.twitter.com/oauth/request_token"),
authorizeUrl:    new Uri("https://api.twitter.com/oauth/authorize"),
accessTokenUrl:  new Uri("https://api.twitter.com/oauth/access_token"),
callbackUrl:     new Uri("http://www.isportfoy.com.tr/tr/anasayfa") 

);

Twitterauth.Completed += (s, ee) =>

{
   if (ee.IsAuthenticated)
        {

           var request = new OAuth1Request(
                        "GET",
                         new Uri("https://api.twitter.com/1.1/account/verify_credentials.json"),
                        null,
                        ee.Account);

                    request.GetResponseAsync().ContinueWith(t =>
                    {
                        var res = t.Result;
                        var resString = res.GetResponseText();
                        Console.WriteLine("Result Text: " + resString);
                    });
}
                else 
                {

                }

            };

【问题讨论】:

    标签: email twitter xamarin oauth twitter-oauth


    【解决方案1】:

    Twitter API 要求我们在响应中指明是否要向用户发送电子邮件。

    根据 Twitter 文档,这可以发送 include_email 为 true。

    完整文档:https://dev.twitter.com/rest/reference/get/account/verify_credentials

    【讨论】:

    • 谢谢。显然你必须将它们作为参数添加......作为休闲。 Dictionary 参数 = new Dictionary(); param.Add("include_email","true"); var request = new OAuth1Request("GET", newUri("api.twitter.com/1.1/account/verify_credentials.json"), param, ee.Account); request.GetResponseAsync().ContinueWith(t => { var res = t.Result; var resString = res.GetResponseText (); });
    • 对不起,我不是很清楚,但这确实是我的意思。您需要将此字段作为请求的参数发送。
    • 感谢 apineda 和 @BahadirGul 的详细解答。
    【解决方案2】:
    if (e.IsAuthenticated)
    {
        Dictionary<string, string> param = new Dictionary<string, string>();
        param.Add("include_email","true");
        var request = new OAuth1Request(
            "GET",
            new Uri("https://api.twitter.com/1.1/account/verify_credentials.json"),
            param,
            e.Account);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-12-14
      • 2012-05-10
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-16
      • 1970-01-01
      • 2012-03-26
      相关资源
      最近更新 更多