我正在尝试在我们的项目中实现对LinkedIn的共享。它对我来说就像一个魅力,然而,对我所有的同事来说,事实并非如此。它仅为共享请求返回import pandas as pd
pd.read_table("file.path",sep="\t",index_col=0)
(配置文件请求正常工作)。
我们使用的LinkedIn应用程序归我所有。出于测试目的,另一位开发人员试图在他的帐户中创建一个应用程序,但问题仍然存在:我是唯一可以共享的人。
我们正在使用linkedinapi/linkedin作为后端。这是代码:
401: Unknown authentication scheme
UPD:结果表明它只能在我的机器上发布,因此他们的计算机上的配置有问题。寻找它。
答案 0 :(得分:1)
<强>研究强>
我让我的同事在我的机器上登录LinkedIn,查看他的帐户或他的电脑的发布是否失败。它发布了,这表明我的配置有问题,这就是它的工作原理。
我的下一步是重新安装所有供应商软件包,包括上面提到的linkedinapi/linkedin。之后,该帖子也停止了为我工作。在检查了图书馆签署请求的方式后,我发现它与LinkedIn要求的方式不符。该库在URL中包含oauth2_access_token
参数,但LinkedIn期望在其文档中声明Authorization
HTTP标头:
获得访问令牌后,您可以代表用户开始进行经过身份验证的API请求。这是通过在对LinkedIn的API的HTTP调用中包含“授权”标题来实现的。
<强>解决方案强>
所以现在我改变了我提出请求的方式。而不是
$result = $this->connection->post('/people/~/shares?format=json', $object);
我使用了一个不同的功能,允许我手动包含标题:
$result = $this->connection->fetch(
'/people/~/shares?format=json',
$object,
\LinkedIn\LinkedIn::HTTP_METHOD_POST,
[ 'Authorization: Bearer ' . $this->connection->getAccessToken() ]
);
另外,我向存储库创建了一个拉取请求。