无法从Linkedin API获取react native的访问令牌

woobm2wo  于 2023-10-22  发布在  React
关注(0)|答案(1)|浏览(111)

我曾尝试实现一个登录功能,我想使用Linkedin API获取用户的姓名、电子邮件和照片,使用react-native-app-auth,但在单击“允许”时,我没有得到任何数据,WebView也没有关闭。在手动关闭WebView时,我收到错误:

无法完成操作。(org.openid.appauth.general error-3.)]

代码
LinkedIn Component
尝试了很多不同的方法,但似乎没有一个有效。我附上了代码。任何帮助都是感激不尽的。

6l7fqoea

6l7fqoea1#

我不知道它在react-native中是否有效。上周我在LinkedIn API上工作,他们改变了他们的API端点和权限关键字等。
你可以使用他们的官方软件包:“linkedin-api-client”https://github.com/linkedin-developers/linkedin-api-js-client#constructor-1
获取登录URL:

const { AuthClient } = require('linkedin-api-client');

const params = {
  clientId:'',
  clientSecret:'',
  redirectUrl: '',
  enabled:true,
  logSuccessResponses:true,
  
}
const authClient = new AuthClient(params);

cosnt getUrl = () => {
  let scopes = [
    'profile', 
    'email',
    'openid', 
    'w_member_social',
   ]
 const url =  authClient.generateMemberAuthorizationUrl(scopes)

}

获取用于登录的URL。
你的redirectUrl请求查询得到一个代码,
然后调用这个函数:

const { AuthClient,RestliClient } = require('linkedin-api-client');

const restClient = new RestliClient();

exports.linkedinCallbackUrlController = async (req,res,next)=>{
  const { code } = req.query

    const  token = await  authClient.exchangeAuthCodeForAccessToken(code)
    
    // user info
    restClient.get({
      resourcePath: '/userinfo',
      accessToken: token.access_token
    }).then(response => {
      const profile = response.data;
      console.log("🚀 ~ file: linkedinController.js:37 ~ exports.linkedinCallbackUrlController= ~ profile:", profile)
    });
    res.json(token)
}

相关问题