2011-08-02 5 views
1

私のASP.netアプリケーションにLinkdin APIを使用する権限を与えようとしていますが、正しく認証されていないようです。私は誰かが私のソースコードを見て、私が間違っているかもしれないかを知ることを望んでいました。C#Asp.net LinkedintoolkitをDotNetOpenAuthで使用してLinkedInツールキットを使用して

まず第一に、私はこのLinkedintoolkit Documentationの手順に従っしようとしていると私は私はまだ運がないよ手順を以下だが。

私がそれを理解するプロセスは、最も簡単な用語では以下のとおりです。

  1. 私のアプリを承認すると、将来のAPI呼び出しのためのアクセストークンを返すためにWebOAuthAuthorizationクラスを使用DotNetOpenAuthのIConsumerTokenManager
  2. の実装を作成します。私はこの例では明白な理由のために

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using DotNetOpenAuth.OAuth.ChannelElements; 
    using DotNetOpenAuth.OAuth.Messages; 
    
    namespace UserLibrary.SocialMedia 
    { 
        public class ConsumerTokenManager : IConsumerTokenManager 
        { 
    
    
         private const string API_KEY = "ylk7j2jq4j7l"; 
         private const string SECRET_KEY = "WH3dlPFhPyWG0xlw"; 
    
         private Dictionary<string, string> tokensAndSecrets = new Dictionary<string, string>(); 
    
         public ConsumerTokenManager() 
         { 
          ConsumerKey = API_KEY; 
          ConsumerSecret = SECRET_KEY; 
         } 
    
    
         #region ITokenManager Members 
    
         public string ConsumerKey { get; private set; } 
    
         public string ConsumerSecret { get; private set; } 
    
         public string GetTokenSecret(string token) 
         { 
          return this.tokensAndSecrets[token]; 
         } 
    
         public void StoreNewRequestToken(UnauthorizedTokenRequest request, ITokenSecretContainingMessage response) 
         { 
          this.tokensAndSecrets[response.Token] = response.TokenSecret; 
         } 
    
         public void ExpireRequestTokenAndStoreNewAccessToken(string consumerKey, string requestToken, string accessToken, string accessTokenSecret) 
         { 
          this.tokensAndSecrets.Remove(requestToken); 
          this.tokensAndSecrets[accessToken] = accessTokenSecret; 
         } 
    
         /// <summary> 
         /// Classifies a token as a request token or an access token. 
         /// </summary> 
         /// <param name="token">The token to classify.</param> 
         /// <returns>Request or Access token, or invalid if the token is not recognized.</returns> 
         public TokenType GetTokenType(string token) 
         { 
          throw new NotImplementedException(); 
         } 
    
         #endregion 
    
        } 
    } 
    

    を偽のAPIキーと秘密鍵を追加し、ここにコードされてきた

    を次のようにマイIConsumerTokenManagerの実装がある

BeginAuthorizationを呼び出すブロック

ConsumerTokenManager consumerTokenManager = new ConsumerTokenManager(); 
      _webOAuthorization = new WebOAuthAuthorization(consumerTokenManager, _accessToken); 

     _webOAuthorization.BeginAuthorize(); 

     _accessToken = _webOAuthorization.CompleteAuthorize(); 

「BeginAuthorization()」が呼び出されたときに、「K2PSのあなたのLinkedInアカウントへのアクセス許可を「Patrick A」に変更しました」 LinkedInネットワーク情報でこのアプリケーションを信頼する場合にのみアクセスを許可します。私はそれが私のWebアプリケーションに私を返すことを許可します。しかし、 '_completeAuthorization()'メソッドは決してヒットせず、文字列を返そうとするとその値はnullです。

また、私のコンソール出力は、処理中にスレッド例外をスローします。以下は

型「System.Threading.ThreadAbortException」の最初のチャンス例外が「System.Threading.ThreadAbortException」の中で発生したがmscorlib.dll タイプの例外を発生した

アウト私のコンソールのコピーですMscorlib.dllが、ユーザーコード

で扱われていなかったが、私は宣誓にかなり新しいですが、APIの上に注ぐされていると、これを解決するように見えることはできません。どんな助けでも大歓迎です。

答えて

1

あなたは私が成功し、以前の実装hereから見つかったこのsampleを試すことができます。..

関連する問題