【问题标题】:Twitter Integration In windows Phone 7Windows Phone 7 中的 Twitter 集成
【发布时间】:2014-09-13 21:51:14
【问题描述】:

我想从 twitter 获取用户信息并在 windows phone 7 中显示。我找到了一些 twitter 集成示例。

Link 1

Link 2

但在这个例子中,我只能登录 Twitter。我无法发布或无法获取用户信息。任何人都可以提供用于 windows phone 7 twitter 集成的示例应用程序或链接。

登录后我尝试这样:

 private void btntest_Click(object sender, RoutedEventArgs e)
    {

        string newURL = string.Format("https://api.twitter.com/1.0/users/show.json?screen_name={0}", userScreenName);

        WebClient webClient = new WebClient();
        webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webBrowser_Navigated);
        webClient.DownloadStringAsync(new Uri(newURL));
    }

    void webBrowser_Navigated(object sender, DownloadStringCompletedEventArgs e)
    {


        if (e.Error != null)
        {
            Console.WriteLine("Error ");
            return;
        }
        Console.WriteLine("Result==> " + e.Result);     
    }

但在这里我无法获取用户信息。请帮我获取用户信息。

提前致谢。

现在我尝试这样:

public void GetTwitterDetail(string userScreenName)
    {
        var credentials = new OAuthCredentials
          {
              Type = OAuthType.ProtectedResource,
              SignatureMethod = OAuthSignatureMethod.HmacSha1,
              ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
              ConsumerKey = AppSettings.consumerKey,
              ConsumerSecret = AppSettings.consumerKeySecret,
              Token = this.accessToken,
              TokenSecret = this.accessTokenSecret,
              Version = "1.1",
          };

        var restClient = new RestClient
        {
            Authority = "https://api.twitter.com",
            HasElevatedPermissions = true
        };

        var restRequest = new RestRequest
        {
            Credentials = credentials,
            Path = string.Format("/1.1/users/show.json?screen_name={0}",///1.1/users/show.json?screen_name={0}&include_entities=true
                userScreenName),
            Method = WebMethod.Get
        };
        restClient.BeginRequest(restRequest, new RestCallback(test));
    }

    private void test(RestRequest request, RestResponse response, object obj)
    {
        Deployment.Current.Dispatcher.BeginInvoke(() =>
        {
            Console.WriteLine("Content==> " + response.Content.ToString());
            Console.WriteLine("StatusCode==> " + response.StatusCode);

        });

    }

但我收到此错误:

{"errors":[{"message":"Bad Authentication data","code":215}]}

请帮我解决我的问题?

【问题讨论】:

  • 顺便说一句,Win7 即将停止支持。
  • 这意味着MS不会销售Windows phone 7设备。 MS 也不会发布更新,无论是安全性还是其他方面。通常这意味着用户可能会停止使用此类设备。我认为当前稳定的 Winphone 版本是 8.0。我认为我正在进行 8.1 开发更新 2。
  • 所以即使我也无法获取用户信息?但我可以通过我的代码登录 Twitter。为什么?
  • 这些东西应该可以工作(至少只要 MS 支持它)。我相信这个问题是正确的,只是你不应该将新应用程序定位到 WinPhone7。
  • 嗨@Vijay。您是在模拟器还是设备中尝试过?

标签: c# windows-phone-7.1


【解决方案1】:

我终于找到了解决方案..!!! :-)

public void GetTwitterDetail(string _userScreenName)
    {
        var credentials = new OAuthCredentials
          {
              Type = OAuthType.ProtectedResource,
              SignatureMethod = OAuthSignatureMethod.HmacSha1,
              ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
              ConsumerKey = AppSettings.consumerKey,
              ConsumerSecret = AppSettings.consumerKeySecret,
              Token = this.accessToken,
              TokenSecret = this.accessTokenSecret,
          };

        var restClient = new RestClient
        {
            Authority = "https://api.twitter.com/1.1",
            HasElevatedPermissions = true
        };

        var restRequest = new RestRequest
        {
            Credentials = credentials,
            Path = string.Format("/users/show.json?screen_name={0}&include_entities=true", _userScreenName),
            Method = WebMethod.Get
        };

        restClient.BeginRequest(restRequest, new RestCallback(test));

    }

    private void test(RestRequest request, RestResponse response, object obj)
    {
        Deployment.Current.Dispatcher.BeginInvoke(() =>
        {
            Console.WriteLine("Content==> " + response.Content.ToString());
            Console.WriteLine("StatusCode==> " + response.StatusCode);
        });
    }

现在我得到了用户的信息..!!! 5天的挣扎终于结束了..!!谢谢大家..!!

【讨论】:

    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 2012-11-05
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    相关资源
    最近更新 更多