我正在使用OAuth 1.0a for LinkedIn API。目前,我已经实现了一些获取配置文件和连接的调用,它们似乎都运行正常。但是为了发送消息,oauth库会引发以下异常:
{
"errorCode": 0,
"message": "Unknown authentication scheme",
"requestId": "I2Y0MFJ8ME",
"status": 401,
"timestamp": 1378376573339
}
我正在使用PHP PECL OAuth。我正在初始化$ oauth对象:
$oauth = new OAuth(API_KEY, API_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_FORM);
$oauth->setToken(ACCESS_TOKEN, SECRET);
并按照以下方式拨打其他电话:
$url = 'https://api.linkedin.com/v1/people/~/mailbox?format=json';
$content_type = array('Content-Type' => 'application/json');
$oauth->fetch($url, $message, OAUTH_HTTP_METHOD_POST, $content_type);
和$ message看起来像这样:
$message = Array
(
[recipients] => Array
(
[0] => z2222117O
)
[subject] => this is my title
[body] => this is my body
[format] => json
[id] => EAS123123
)
看起来请求没有任何问题。我按照LinkedIn messaging docs的说明进行操作。其他人有同样的问题吗?提前谢谢。
答案 0 :(得分:3)
我在下面的链接上回答了问题,似乎是同样的错误。虽然看起来技术不同,但是在请求中发送access_token以获取受保护资源的解决方案是相同的。
答案 1 :(得分:1)
LinkedIn要求您在标头中设置访问令牌,或者将其设置为具有非标准名称access_token
的查询参数。当我将其作为名为id = 0
的查询参数发送时,我收到了您所犯的错误。
答案 2 :(得分:0)
LinkedIn forums上的一些问题似乎表明您获得的错误意味着您没有有效的身份验证令牌。
您确定要在邮件中发送正确且有效的身份验证令牌吗?