2013-02-26 19 views
0

我正在開發一個應用程序,用戶可以在其中登錄他們的Twitter帳戶併發布其狀態。 一切都很順利,但當我點擊發布按鈕發佈時,狀態不會更新。在Windows Phone中發佈推文

我的代碼有什麼問題?

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

回答

0

試試這個代碼,而不是你的代碼

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)); 
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, 
     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 
    }; 

最後你必須檢查一件事。在https://apps.twitter.com/

改變你的應用程序設置的訪問級別Read, write, and direct messages (modify app permissions)

如果您不能更改權限意味着從您的手機試試。從您的手機轉到此網址,並使用您的用戶名和密碼登錄。現在您可以更改手機的設置。現在你可以發佈你的twit .. !!