我正在使用linkedin API。我已按照https://developer.linkedin.com/docs/oauth2给出的说明进行操作 - 因此我获得了代码,并将其替换为访问令牌。都好。
现在,当我尝试点击API时,例如发布更新,"步骤4 - 进行经过身份验证的请求"我总是从API返回一个错误,说我的访问令牌无效。
发送给API的My Header Params是:
array(5) {
[0]=>
string(22) "Connection: Keep-Alive"
[1]=>
string(137) "Authorization: Bearer AQS888888888888888888888888888888-Ab2HY"
[2]=>
string(30) "Content-Type: application/json"
[3]=>
string(17) "x-li-format: json"
[4]=>
string(19) "Content-Length: 171"
}
API响应总是给我这个:
string(134) "{
"errorCode": 0,
"message": "Invalid access token.",
"requestId": "IRBXBZ1X5V",
"status": 401,
"timestamp": 1468498680913
}"
我的curl_getinfo()
调试会返回此数据:
array(22) {
["url"]=>
string(29) "https://api.linkedin.com/v1/?"
["content_type"]=>
string(30) "application/json;charset=UTF-8"
["http_code"]=>
int(401)
["header_size"]=>
int(495)
["request_size"]=>
int(466)
["filetime"]=>
int(-1)
["ssl_verify_result"]=>
int(0)
["redirect_count"]=>
int(0)
["total_time"]=>
float(0.275796)
["namelookup_time"]=>
float(0.003589)
["connect_time"]=>
float(0.00685)
["pretransfer_time"]=>
float(0.055621)
["size_upload"]=>
float(171)
["size_download"]=>
float(134)
["speed_download"]=>
float(485)
["speed_upload"]=>
float(620)
["download_content_length"]=>
float(134)
["upload_content_length"]=>
float(171)
["starttransfer_time"]=>
float(0.275764)
["redirect_time"]=>
float(0)
["certinfo"]=>
array(0) {
}
["redirect_url"]=>
string(0) ""
}
我发帖并希望用JSON而不是XML来回复。
请参阅https://developer.linkedin.com/docs/share-on-linkedin了解我正在关注的文档
我确信访问令牌是正确的,我怀疑我没有正确地在标题中传递它"授权:承载",或者我的端点URL不太正确,我也试过这个:
https://api.linkedin.com/v1/people/~/shares?format=json
和
https://api.linkedin.com/v2/people/~/shares?format=json
有什么想法吗?注意我在这里删除了大部分访问令牌,不要让我发布它!
答案 0 :(得分:3)
所以我将这个新的访问令牌硬编码到我的系统中 - 繁荣!一切正常(为什么我怀疑我的代码!) 所以我检查了一切,为什么我的访问代码被截断? DB - 很好。代码 - 好。很奇怪。 我决定重新点击auth api以获得一个新的访问令牌(我必须已经完成了大约100次!)嘿Presto!我现在有一个很长的访问代码。
我不知道问题是什么,但我的代码现在正在运行。
很抱歉向您说这个,但是您的文档不再需要,当您更改API规范时,您还需要更新您的文档。我有很多处理API的问题。此外,如果您要将支持部门移至Stackoverflow,良好实践要求您监控请求。 对于任何有兴趣的人,在2016年春季变更后,Linkedin列出的图书馆不起作用。主要问题是所有范围都有限。
答案 1 :(得分:1)
在我的情况下,我使用Symfony 3.4和Doctrine 2作为ORM,我在注释中使用了这些代码:
s=df.set_index(['GRP','FILESIZE'])[['HOST1','HOST2','HOST3']].stack().to_frame('HOST').reset_index(level=1)
s.groupby([s.index.get_level_values(level=0),s.HOST.values]).FILESIZE.agg(['count','sum'])
正如您所看到的,我没有在数据库中存储完整的访问令牌以进行经过身份验证的请求,因此更改上面的代码:
/**
* @var string
*
* @ORM\Column(name="access_token", type="string", length=255)
*/
private $accessToken;
一切都开始像魅力一样.....我希望这有助于!!!!!