如何从LinkedIn战略中检索API数据?

时间:2014-08-08 16:30:50

标签: api oauth-2.0 linkedin

我安装了Google Opauth策略,它的工作非常出色。 LinkedIn的行为略有不同;在此策略的指示中,它指定不需要OAuth重定向URL(在LinkedIn开发人员网站上)。我试着把它留下来,并不断收到这个错误:

'无效的redirect_uri。该值必须与使用API​​密钥注册的URL匹配。'

这个错误也出现在插件的演示中:http://opauth.org/#demo

所以我稍微改了一下并放置了我的重定向网址,以防万一,就像我的谷歌一样,它似乎有效!它把我带到了LinkedIn登录界面,我输入了我的凭据,然后将我重定向回我的应用程序。麻烦的是,这次没有返回任何数据。

LinkedInStrategy.php中的默认值如下所示:

public $defaults = array(
    'redirect_uri' => 'http://example.com/users/login',
    'response_type' => 'code',
    'scope' => 'r_fullprofile r_emailaddress r_contactinfo'
);

在我的控制器中我有这个:

$_SESSION['log'] = $this->data;

在我看来,我有这个:

debug($_SESSION['log']);

这只是为了查看数据是否正在设置。当我使用GoogleStrategy.php设置登录时,此行显示所有数据,我用它来登录。完美。但是使用LinkedIn策略,我只是得到一个空阵列。有人有什么想法吗?

编辑:

根据LinkedIn API文档here,我返回的代码是成功验证后返回的正确代码(在响应URL中重定向uri,代码和状态)。所以我知道到目前为止连接的一切都是正确的,只是获取数据必须与常规Opauth文档中规定的$ this->数据返回方法不同。

1 个答案:

答案 0 :(得分:0)

我解决了!我将redirect_uri更改回默认值:

'redirect_uri' => '{complete_url_to_strategy}oauth2callback',

在LinkedIn Developer API区域,我将此网址放在OAuth 2.0重定向网址中:

http://example.com/auth/linkedin/oauth2callback

因此,与其说明here不同,需要设置OAuth重定向网址。

2. Create LinkedIn application at https://www.linkedin.com/secure/developer

    Enter your domain at JavaScript API Domain
    There is no need to enter OAuth Redirect URL

此外,它必须是http://www.example.com/auth/linkedin/oauth2callback。如果它不是那个URL,它将无法工作,除非你自己更改一些配置文件和函数名称。我的错误是我为它设置了一个自定义页面,而不是通过它的oath2callback函数然后前往重定向页面。