2016-04-18 50 views
0

使用OAuth PIN授權方法連接到Twitter時,存在以下問題。c#LinqToTwitter連接OAuth PIN

驗證碼:

private async void button1_Click(object sender, RoutedEventArgs e) 
    { 
     pinAuth = new PinAuthorizer 
     { 

      CredentialStore = new InMemoryCredentialStore 
      { 

       ConsumerKey = resourceLoader.GetString("ConsumerKey"), 
       ConsumerSecret = resourceLoader.GetString("ConsumerSecret") 
      }, 

      GoToTwitterAuthorization = async pageLink => 
       await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, 
       () =>{ OAuthWebBrowser.Navigate(new Uri(pageLink, UriKind.Absolute)); }) 

     }; 
     await pinAuth.BeginAuthorizeAsync(); 

檢索PIN碼後,我會做這樣的事情:

private async void button2_Click(object sender, RoutedEventArgs e) 
    { 
     string pin = null; // Cant get the PIN 
     await pinAuth.CompleteAuthorizeAsync(pin); 

     var credentials = pinAuth.CredentialStore; 
     string oauthToken = credentials.OAuthToken; 
     string oauthTokenSecret = credentials.OAuthTokenSecret; 
     string screenName = credentials.ScreenName; 
     ulong userID = credentials.UserID; 
    } 

瀏覽器打開,我把我的憑據到表單,然後單擊授權。點擊後,PIN會彈出半秒鐘,然後出現以下錯誤消息: 「此頁面需要一些未提供的信息,請返回到發送到此頁面的網站,然後再試一次......這是可能是一個誠實的錯誤「

同樣的問題在這Thread到目前爲止沒有解決方案。

謝謝!

// UPDATE

enter image description here

+0

http://stackoverflow.com/questions/16667361/linq-to-twitter-status-update這個答案有LinqToTwitter代碼來實現這一點。第一部分是舊版本,如果是庫,但下面是如何爲新版本進行更新的更新。 – AndyJ

回答

0

隨着不久三天沒有迴應,我允許自己給你Tweetinvi(這我是開發者)的替代實例。我知道你正在嘗試使用LinqToTwitter,我不知道該庫足以幫助你解決這個特定的問題。

您可以在關聯的wiki section中找到關於驗證的更多信息。

// Create a new set of credentials for the application. 
var appCredentials = new TwitterCredentials("CONSUMER_KEY", "CONSUMER_SECRET"); 

// Init the authentication process and store the related `AuthenticationContext`. 
var authenticationContext = AuthFlow.InitAuthentication(appCredentials); 

// Go to the URL so that Twitter authenticates the user and gives him a PIN code. 
Process.Start(authenticationContext.AuthorizationURL); 

// Ask the user to enter the pin code given by Twitter 
var pinCode = Console.ReadLine(); 

// With this pin code it is now possible to get the credentials back from Twitter 
var userCredentials = AuthFlow.CreateCredentialsFromVerifierCode(pinCode, authenticationContext); 

// Use the user credentials in your application 
Auth.SetCredentials(userCredentials); 

我希望這可以對你有所幫助。

+0

只有在嘗試你的想法之前清楚...是否有可能通過Tweetinvi獲得Twitter Conection,然後與LinqToTwitter一起使用,或者這是一個真正愚蠢的問題:-)?我很開發這個應用程序,我將不得不重做所有的Twitter功能...... – Ulpin

+0

是的,這將是可能的。來自Tweetinvi的'userCredentials'將包含您需要使用LinqToTwitter驗證的所有信息。 – Linvi

+0

'ITwitterCredentials'包含'access_token','access_token_secret','consumer_key'和最後'consumer_secret'這些都是您需要驗證的信息。 – Linvi