【问题标题】:LinkedIn authorization error领英授权错误
【发布时间】:2011-12-23 14:44:28
【问题描述】:

你能帮帮我吗?我正在尝试从 iPhone 应用程序登录到 LinkedIn,结果收到错误:oauth_problem=signature_invalid。

当我尝试通过带有 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 都可以正常工作。

【问题讨论】:

  • 您是使用任何 API 还是依赖自己的代码?
  • 我对所有服务都使用 OAuthConsumer API:FB、Twitter 和 LinkedIn
  • 只需使用 LinkedIn oauth-test-console 检查您的签名和其他内容
  • 好的。 “会员秘密”是什么意思?我在我的请求中找不到它。

标签: oauth linkedin


【解决方案1】:

我怀疑您的签名没有正确生成 - 当人们从 GET 移动到 POST 时经常出现 OAuth 签名 (401) 错误,这是因为签名没有正确生成。我完全同意在 LinkedIn 上使用 oauth-test-console 的建议(我是为这种情况创建的)。如果您将调用的特定变量放入表单中,您应该获得相同的签名 - 如果您不这样做,则意味着您的签名生成不正确。

话虽如此,我写了一个示例 LinkedIn iPhone 客户端(它所做的只是进行身份验证并获取您的个人资料)。图书馆在这里: https://github.com/synedra/LinkedIn-OAuth-Sample-Client

登录视图在这里: 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:)];    

}

【讨论】:

【解决方案2】:

这不是一个条件,如果事情在一个平台上传递应该在另一个平台上传递:)

据我了解,平台/服务在实现给定规范的方式上总是存在一些差异。

建议您在测试控制台中使用 Linked 来检查到底出了什么问题

LinkedIn oauth-test-console

【讨论】:

  • 我在线程“main”com.google.code.linkedinapi.client.oauth.LinkedInOAuthServiceException 中遇到异常错误:oauth.signpost.exception.OAuthCommunicationException:与服务提供商通信失败:服务器返回 HTTP响应代码:401 对应 URL:api.linkedin.com/uas/oauth/requestToken 我该如何解决这个问题?在 oauth -test-console 中它工作正常
猜你喜欢
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 2011-04-24
  • 2018-06-30
  • 2015-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多