2011-12-15 17 views
0

私を助けてもらえますか?私はiPhoneアプリケーションからLinkedInにログインしようとしています。その結果、エラーが発生します:oauth_problem = signature_invalid。LinkedIn認証エラー

私はPOSTのパラメータでURL https://api.linkedin.com/uas/oauth/accessTokenでメソッドを呼び出すしようとすると、私はそれを受け取る:

OAuth realm="http://sp.example.com/", 
oauth_consumer_key="Z-sSugZBQPQGQTAymNEVSQTrBBrteG1x0PHwXWrtkvrNWfKJuzQ36AmwT1j8UBPh", 
oauth_token="19a1cc6e-597f-47ed-8d1c-778d05b25de3", 
oauth_signature_method="HMAC-SHA1", 
oauth_signature="vOfSRkbbC2%2FFw26wy6s%2FF5ThkS4%3D", 
oauth_timestamp="1323948893", 
oauth_nonce="431570D9-405F-4844-85E0-85722B53D397", 
oauth_version="1.0", 
oauth_verifier="12611" 

私が間違っているかを理解していません。 :(

興味深い、TwitterやFacebookの両方の作業罰金。

+0

あなたがいずれかを使用していますAPIを使用するか、独自のコードに頼っていますか? –

+0

私は、すべてのサービスのためのAPIを使用しOAuthConsumer:FB、TwitterやLinkedInの – VictorT

+0

は自分の署名とのLinkedIn OAuthのテスト・コンソール –

答えて

0

そのない事が一つのプラットフォーム上で渡さなっている場合は、別の:)が常に持っている私の理解あたりとして

に渡される必要があることを条件プラットフォーム/サービスが与えられた仕様をどのように実装するかの違い。

は、あなたが正確に何が起こっているかをチェックするためにテストコンソールにリンクされた使用することをお勧め間違っ

LinkedIn oauth-test-console

+0

私はスレッドで例外にエラーが発生しました「メイン」com.google.code.linkedinapi.client.oauth.LinkedInOAuthServiceException:oauth.signpost.exception.OAuthCommunicationException:サービスプロバイダとの通信に失敗しました:URLのために401:サーバーはHTTP応答コードを返しました: https://api.linkedin.com/uas/oauth/requestTokenどうすればこの問題を解決できますか? oauthのテストコンソールでうまく動作しています – muthu

0

私の疑いで、あなたの署名が正しく生成取得されていないこと - 人々はOAuthの署名(401)を持って頻繁にするとき署名が正しく生成されないため、GETからPOSTへの移動時にエラーが発生します。私はLinkedIn上でoauth-test-consoleを使う提案に全面的に同意します(私はこの状況のた​​めに作成しました)。あなたの呼び出しのための特定の変数をフォームに入れると、同じシグネチャを取得する必要があります。そうでなければ、シグネチャが正しく生成されていないことを意味します。私は(それがないすべてが認証を行うと、あなたのプロフィールを取得することです)LinkedInのiPhoneクライアントの例を書いて、言われたこと

。ライブラリはここにある: https://github.com/synedra/LinkedIn-OAuth-Sample-Client

LoginViewはここにある: https://github.com/synedra/LinkedIn-OAuth-Sample-Client/blob/master/OAuthStarterKit/OAuthLoginView.m

あなたがこの方法のような音を探している特定のセクション:

- (void)accessTokenFromProvider 
{ 
    OAMutableURLRequest *request = 
    [[[OAMutableURLRequest alloc] initWithURL:accessTokenURL 
      consumer:self.consumer 
      token:self.requestToken 
      callback:nil 
      signatureProvider:nil] autorelease]; 

    [request setHTTPMethod:@"POST"]; 
    OADataFetcher *fetcher = [[[OADataFetcher alloc] init] autorelease]; 
    [fetcher fetchDataWithRequest:request 
     delegate:self 
     didFinishSelector:@selector(accessTokenResult:didFinish:) 
     didFailSelector:@selector(accessTokenResult:didFail:)];  

}

+0

私は実際にあなたのコードを使ってこのエラーを受けています:http://stackoverflow.com/questions/12265035/linkedin-api-error-invalid-signature-in-iphone-starter -kitが、私は権限を変更するだけなので、このdoesntの仕事: requestTokenURLString = @「https://api.linkedin.com/uas/oauth/requestToken?scope=r_basicprofile+r_emailaddress」。 これに設定するとします: https://api.linkedin.com/uas/oauth/requestToken –