gpt4 book ai didi

node.js - 如何使 Linkedin Rest API 请求 Node 方式(没有 JS SDK)?

转载 作者:搜寻专家 更新时间:2023-11-01 00:01:12 24 4
gpt4 key购买 nike

我正在使用 Node (v0.12.4) + Express (v4.0.0) + PassportJS(v0.1.17) 通过 LinkedIn (OAuth2) 对用户进行身份验证。

我正在按照本教程中的步骤进行操作: https://developer.linkedin.com/docs/oauth2

我能够对用户进行身份验证并将他的信息与 LinkedIn 提供的 Auth Token 一起保存到我的数据库中。

我的问题:如何使用 token 向 API 发出请求?我卡在了给定教程的第 4 步。

例如,我将如何进行下面的调用(取自上面的教程)?

调用示例

GET /v1/people/~ HTTP/1.1
Host: api.linkedin.com
Connection: Keep-Alive
Authorization: Bearer AQXdSP_W41_UPs5ioT_t8HESyODB4FqbkJ8LrV_5mff4gPODzOYR

看似简单,但作为一个node初学者,我已经折腾了太久。

==================

编辑:按照 Ted Avery 的建议,我尝试了 request module 并得到了如下结果:

// LinkedIn API route
app.get('/linkedin/people', function(req,res){
request.get('http://api.linkedin.com/v1/people/~', {
'host': 'api.linkedin.com',
'connection': 'Keep-Alive'
'auth': {
'bearer': req.user.linkedin.token
}
}, function(error,apiRes,body){
res.send(apiRes);
});
});

我得到以下响应 (apiRes):

{
"statusCode":401

"body":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<error>\n <status>401</status>\n <timestamp>1437750879622</timestamp>\n <request-id>AKM2GX6BFE</request-id>\n <error-code>0</error-code>\n <message>ssl required</message>\n</error>\n",

"headers":{
"server":"Apache-Coyote/1.1",
"x-li-request-id":"AKM2GX6BFE",
"date":"Fri, 24 Jul 2015 15:14:38 GMT",
"vary":"*",
"x-li-format":"xml",
"content-type":"text/xml;charset=UTF-8",
"content-length":"236",
"x-li-fabric":"prod-ltx1",
"x-li-pop":"prod-ltx1",
"x-li-uuid":"zoW/s87q8xNQnsleUCsAAA==",
"set-cookie":["lidc=\"b=TB60:g=105:u=27:i=1437750879:t=1437833236:s=AQFNZrhu0_0QIvH-rUkU4ElJ8Ytm_dKV\"; Expires=Sat, 25 Jul 2015 14:07:16 GMT; domain=.linkedin.com; Path=/"]
},

"request":{
"uri":{
"protocol":"http:",
"slashes":true,
"auth":null,
"host":"api.linkedin.com",
"port":80,
"hostname":"api.linkedin.com",
"hash":null,
"search":null,
"query":null,
"pathname":"/v1/people/~",
"path":"/v1/people/~",
"href":"http://api.linkedin.com/v1/people/~"
},
"method":"GET",
"headers":{
"authorization":"Bearer AQVYLfCs5lpbUlFdGeKXdR3z-3IiuO2N-PdJ7wgEtD_2doyxcy--mUxCN-GCJm-CaRXa-j7OF646enu_V5cp8jbiuMPesqKjWLcDdMmy8PSbEXS6Mw2iVznVF0Mk0iSAm419XlB7uMFwX0iAC71a_kjk_hZmvc90PmT471MLButnQmo3ww0"
}
}
}

我知道 linkedin-passport 身份验证过程没问题,因为我正在我的数据库中获取用户名、电子邮件和 token 。问题是使用这个 token ,我总是出于某种原因得到未经授权的 401。对此有什么想法吗?

最佳答案

Node 中的任何 REST 都通过 request 得到了极大的简化图书馆,所以我推荐。文档中有一些您想要的示例。抱歉,我知道最好有一个代码示例,但是我已经有一段时间没有使用这个库来处理项目了。

关于node.js - 如何使 Linkedin Rest API 请求 Node 方式(没有 JS SDK)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31545785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com