我正在尝试使用ng2-cordova-oauth使用cordova登录linkedin。但我在尝试登录时收到此错误:
redirect_uri与注册值不匹配。
这是我的linkedin提供程序对象:
private linkedinProvider: LinkedIn = new LinkedIn({
clientId: "XXXX",
appScope: ["r_fullprofile"],
});
这就是我使用它的方式:
this.cordovaOauth.logInVia(this.linkedinProvider).then(success => {
console.log("RESULT: " + JSON.stringify(success));
}, error => {
console.log("ERROR: ", error);
});
问题是所需的其他参数不可用,步骤2中提到的那些参数:https://developer.linkedin.com/docs/oauth2
我将如何添加它们并使用它,facebook示例只有这些参数,当我尝试添加任何一个参数时,我得到一个编译错误:
const provider = new Facebook({
clientId: string,
appScope?: string[],
redirectUri?: string,
responseType?: string,
authType?: string
});
答案 0 :(得分:1)
linkedin提供商应如下所示:
private linkedinProvider: LinkedIn = new LinkedIn({
clientId: client_id,
appScope: ["r_basicprofile","r_emailaddress"],
redirectUri: redirectUri,
responseType: responseType,
state: state
});
带有responseType的总是等于'代码'和redirectUri总是相等' http://localhost/callback'。和state是随机生成的字符串值。 您将在您的linkedin应用页面中找到client_id和client_secret值。 " logInVia"函数将返回包含authorization_code的promise,当你得到它时,你需要获取访问令牌,然后你发出另一个请求来获取你想要的数据。
在步骤3和步骤4中记录了整个请求here。 P.S:在第4步中不要忘记" Bearer"在Authorization标头中的访问令牌之前。