Php Linkedin API无效访问令牌
我正在使用linkedin API。我已经遵循了在给出的指令,所以我得到了代码,并将其交换为访问令牌。一切都好 现在,当我尝试点击API时,例如发布更新,“步骤4-发出经过身份验证的请求”,我总是从API返回一个错误,说我的访问令牌无效 发送到API的头参数如下:Php Linkedin API无效访问令牌,php,oauth,linkedin,linkedin-api,Php,Oauth,Linkedin,Linkedin Api,我正在使用linkedin API。我已经遵循了在给出的指令,所以我得到了代码,并将其交换为访问令牌。一切都好 现在,当我尝试点击API时,例如发布更新,“步骤4-发出经过身份验证的请求”,我总是从API返回一个错误,说我的访问令牌无效 发送到API的头参数如下: array(5) { [0]=> string(22) "Connection: Keep-Alive" [1]=> string(137) "Authorization: Bearer AQS888888
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\u 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的响应
请参阅以获取我正在跟踪的文档
我确信访问令牌是正确的,我怀疑我没有在标题“Authorization:Bearer”中正确地传递它,或者我的端点URL不太正确,我也尝试过这样做:
https://api.linkedin.com/v1/people/~/shares?format=json
及
有什么想法吗?注意我已经删除了这里的大部分访问令牌,不要要求我发布它 好吧,这很奇怪。我的访问令牌正在被返回(我认为是正确的)。在经历了一番令人头疼的事情之后,我决定使用apigee.com上的API控制台对所有内容进行双重检查。我检查了访问令牌,猜猜看,它的长度是我从Linkedin Oauth2收到的所有令牌长度的两倍。。奇怪 所以我硬编码这个新的访问令牌到我的系统-繁荣!一切正常(为什么我总是怀疑我的代码!) 所以我检查了所有东西,为什么我的访问代码被截断了??DB-很好。代码-很好。很奇怪。 我决定重新点击auth api以获得一个新的访问令牌(我一定已经做了大约100次了!)嘿,普雷斯托!我现在有一个长访问代码 我不知道问题出在哪里,但我的代码现在正在运行 很抱歉告诉你linkedin,但是你的文档还有待改进,当你更改api规范时,你也需要更新你的文档。我在处理API时遇到了很多问题。此外,如果您要将支持部门转移到Stackoverflow,良好的实践要求您监控请求。
对任何感兴趣的人来说,Linkedin列出的图书馆在2016年春季做出更改后就不起作用了。主要问题是所有的作用域都受到了限制。我也遇到了同样的问题,答案如下: 在我的例子中,我使用Symfony 3.4和Doctrine 2作为ORM,我在注释中有一段代码:
/**
* @var string
*
* @ORM\Column(name="access_token", type="string", length=255)
*/
private $accessToken;
如您所见,我没有将完全访问令牌存储在数据库中以进行身份验证请求,因此通过以下方式更改上述代码:
/**
* @var text
*
* @ORM\Column(name="access_token", type="text")
*/
private $accessToken;
一切都开始像一个魔咒一样运转。。。。。我希望这有帮助 现在他们的v2 api也出现了同样的通信问题。他们没有提供一份可靠的文件。我们的Oauth2令牌不适用于v2端点,显然,您需要对此具有特殊权限,但它们没有告诉您访问v2 api应遵循的确切步骤。@javadev您是如何找到如何处理v2的?我也有同样的问题。@gabriel_vincent v2需要特殊许可,您需要请求。我忘记了网址的时间,但应该很容易找到。
/**
* @var text
*
* @ORM\Column(name="access_token", type="text")
*/
private $accessToken;