1

就像这个没有答案的问题一样,我正在尝试通过 PHP/OAuth 连接到 Linked in。我得到了令牌。一切正常。但由于某种原因,Linkedin 不会返回我的回调 URL 并要求输入 PIN 码?帮助?

从文档来看,只有在没有回调 URL 的情况下才会发生这种情况?

$token = $linkedInOAuth->getRequestToken();

array(5) {
  ["oauth_token"]=>
  string(36) "[valad_token]"
  ["oauth_token_secret"]=>
  string(36) "[valad_secret]"
  ["oauth_callback_confirmed"]=>
  string(4) "true"
  ["xoauth_request_auth_url"]=>
  string(44) "https://api.linkedin.com/uas/oauth/authorize"
  ["oauth_expires_in"]=>
  string(3) "599"
}

$linkedInOAuth->getAuthorizeURL($token, site_url('practice/linkedin_auth_callback'));

string(169) "https://api.linkedin.com/uas/oauth/authorize?oauth_token=[valad_token]&oauth_callback=http%3A%2F%2Fwww.core.me%2Fpractice%2Flinkedin_auth_callback"

然后将链接放入 a<a href="<?= $auth_url ?>">Click here to Auth Linked in</a>但是当用户进入并登录时 - 它会进入 PIN 页面?

4

2 回答 2

2

看起来 LinkedIn API 使用 Oauth 1.0a,您需要在获取初始请求令牌时传递回调 url。

这里

或者阅读Oauth 1.0a 规范

他们将存储它,然后当用户授权请求令牌时,它将回调到针对该请求令牌存储的 url。

于 2012-08-17T22:36:42.207 回答
0

这是由 WayneC 的回答提供的工作代码:

        $linkedInOAuth = $this->load->library('practice/linkedInOAuth', array(
            'consumer_key' => '[KEY]',
            'consumer_secret' => '[SECRET]'
                )
        );


        $linkedInOAuth->request_options = array(
            'oauth_callback' => site_url('practice/linkedin_auth_callback')
        );
        $token = $linkedInOAuth->getRequestToken();

        if ($token === FALSE) {
            show_error("Failed to get token", "502", "Failed to get Linked in Access token");
        }

        $auth_url = $linkedInOAuth->getAuthorizeURL($token, site_url('practice/linkedin_auth_callback'));

它使用这些类:

于 2014-05-12T18:33:17.623 回答