LinkedIn API oauth与发送消息node.js有关

我有这个相同的问题:

如何使用node-auth发布到LinkedIn“分享”?

基本上我使用的是与GET请求很好的linkedin-js NPM模块。 我正在和护照一起使用这个模块,并成功地生成了oauth标记和密码。 当POST不能用于消息传递时,我进入了oauth依赖项库,并将所有Content-Type头文件改为application / json,将X-li格式头文件改为json。 另外,我所有的其他基地都被覆盖。 我在范围中设置了“w_messages”,其他请求正在工作。

我真的不需要x-li格式的头文件,因为我有application / json头文件。 我唯一能想到的就是访问令牌是closures的(可能是我缺less的步骤 – 这是不太可能的,因为所有其他请求需要validation工作)或明文签名被application / json Content-Type抛出(错误如下不抛出):

if( signatureMethod != "PLAINTEXT" && signatureMethod != "HMAC-SHA1") throw new Error("Un-supported signature method: " + signatureMethod ) 

我从这个错误消息:

 { statusCode: 401, data: '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<error>\n <status>401</status>\n <timestamp>1375876823051</timestamp>\n <request-id>0WFU40UZP8</request-id>\n <error-code>0</error-code>\n <message>[unauthorized]. OAU:fgb949d9gb66|427a55ea-a05e-4494-88f5-a33230bd719a|*01|*01:1375876915:WWqVTAe9WQneEf8ezL6Yl7DMyV4=</message>\n</error>\n' } 

对于此错误消息:

 { statusCode: 401, data: '{\n "errorCode": 0,\n "message": "[unauthorized]. OAU:fgb949d9gb66|ce1f124c-1e10-4abc-8777-55bbd9621100|*01|*01:1375913097:EH90Q69mhGRwiCVcknimzAUnLqI=",\n "requestId": "KOYHE8K0M6",\n "status": 401,\n "timestamp": 1375913004009\n}' } 

这里是api调用和相应的oauth调用:

 linkedinClient.apiCall('POST', '/people/~/mailbox', { "token": { "oauth_token_secret": tokenSecret , "oauth_token": token }, "mailbox-item": {"recipients": { "values": [ { "person": { "_path": people, } }] }, "subject": subject, "body": body} } , function (error, result) { if (result){ req.io.emit('success', {success : "LinkedIn message sent successfully."}); } console.log(error); } ); var CLIENT = { oauth: new OAuth( 'https://api.linkedin.com/uas/oauth/requestToken' , 'https://api.linkedin.com/uas/oauth/accessToken' , key , secret , '1.0A' , redirect , 'HMAC-SHA1' , null , {'Accept': '*/*', 'Connection': 'close', 'X-li-format': 'json', 'Content-Type': 'application/json'} ) } CLIENT.oauth.post( _rest_base + path , token.oauth_token , token.oauth_token_secret , params , 'application/json' , requestCallback(callback) );