Windows phone 7 windows phone中的Twitter帖子

Windows phone 7 windows phone中的Twitter帖子,windows-phone-7,twitter,Windows Phone 7,Twitter,我正在开发一个应用程序,用户可以登录到他们的twitter帐户并发布他们的状态。 一切都很顺利,但当我点击tweet按钮发帖时,状态没有更新 我的代码有什么问题 private void btnPostTweet_Click(object sender, RoutedEventArgs e) { if (txtBoxNewTweet.Text.Trim().Length == 0) { return; } var credentials = new OAuthCredentia

我正在开发一个应用程序,用户可以登录到他们的twitter帐户并发布他们的状态。 一切都很顺利,但当我点击tweet按钮发帖时,状态没有更新

我的代码有什么问题

private void btnPostTweet_Click(object sender, RoutedEventArgs e)
{
    if (txtBoxNewTweet.Text.Trim().Length == 0) { return; }

    var credentials = new OAuthCredentials
    {
        Type = OAuthType.ProtectedResource,
        SignatureMethod = OAuthSignatureMethod.HmacSha1,
        ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
        ConsumerKey = TwitterSettings.consumerKey,
        ConsumerSecret = TwitterSettings.consumerKeySecret,
        Token = this.accessToken,
        TokenSecret = this.accessTokenSecret,
        Version = "1.0"
    };

    var restClient = new RestClient
    {
        Authority = TwitterSettings.StatusUpdateUrl,
        HasElevatedPermissions = true,
        Credentials = credentials,
        Method = WebMethod.Post
    };

    restClient.AddHeader("Content-Type", "application/x-www-form-urlencoded");

    // Create a Rest Request and fire it
    var restRequest = new RestRequest
    {
        Path = "1/statuses/update.xml?status=" + txtBoxNewTweet.Text 
    };

    var ByteData = Encoding.UTF8.GetBytes(txtBoxNewTweet.Text);
    restRequest.AddPostContent(ByteData);
    restClient.BeginRequest(restRequest, new RestCallback(PostTweetRequestCallback));
}

请尝试此代码,而不是代码的最后一行

    restRequest = new RestRequest
    {
        Path = "1/statuses/update.xml"
    };
    restRequest.AddParameter("status", tbxNewTweet.Text);

    //var ByteData = Encoding.UTF8.GetBytes(txtBoxNewTweet.Text);
    //restRequest.AddPostContent(ByteData);
    restClient.BeginRequest(restRequest, new RestCallback(PostTweetRequestCallback));

我无法回答您的问题,但如果您使用API twitter API 1.0,请立即转到API 1.1。他们将在下个月停用api 1.0:。
注意,它们正在关闭除JSON之外的所有代码,因此您的代码可能随时停止工作。

您好,您找到答案了吗?如果没有,请尝试以下方法:

var credentials = new OAuthCredentials
    {
        Type = OAuthType.ProtectedResource,
        SignatureMethod = OAuthSignatureMethod.HmacSha1,
        ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
        ConsumerKey = TwitterSettings.consumerKey,
        ConsumerSecret = TwitterSettings.consumerKeySecret,
        Token = this.accessToken,
        TokenSecret = this.accessTokenSecret,
        Version = "1.0"
    };
此处删除
Version=“1.0”

所以它看起来是这样的:

var credentials = new OAuthCredentials
        {
            Type = OAuthType.ProtectedResource,
            SignatureMethod = OAuthSignatureMethod.HmacSha1,
            ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
            ConsumerKey = TwitterSettings.consumerKey,
            ConsumerSecret = TwitterSettings.consumerKeySecret,
            Token = this.accessToken,
            TokenSecret = this.accessTokenSecret,            
        };
然后更改路径:

var restRequest = new RestRequest
    {
        Path = "1.1/statuses/update.xml?status=" + txtBoxNewTweet.Text 
    };
最后,你必须检查一件事。您的应用程序设置在

将访问级别更改为
读、写和直接消息(修改应用程序权限)

如果您无法更改权限,请尝试使用手机。从手机转到此url,并使用用户名和密码登录。现在,您可以从手机更改设置。现在你可以发布你的twit了