尝试分享'在LinkedIn:https://developer.linkedin.com/docs/share-on-linkedin
这基本上是对{' https://api.linkedin.com/v1/people/~/shares?format=json' 最简单的形式是json:
{
"comment": "Check out developer.linkedin.com! http://linkd.in/1FC2PyG",
"visibility": {
"code": "anyone"
}
}
这需要设置http标头:
Content-Type: application/json
x-li-format: json
我尝试使用OAuth.io尝试这样做,但LinkedIn似乎仍然在阅读XML格式的正文。
请参阅我的示例:https://jsfiddle.net/Lv3jtpkb/2/
我从中得到以下错误:
Invalid xml {Element 'share@http://api.linkedin.com/v1' with element-only content type cannot have text content.}
我已经检查过从OAuth.io服务器到LinkedIn API端点,前端指定的标头是否以某种方式被更改,并且可以确认它们没有。
答案 0 :(得分:0)
你几乎就在那里。有2个错误。
您的数据被格式化为JS对象。您正在使用的方法似乎并没有自动将对象转换为JSON。
这行代码没有做任何事情,导致例外:
.then(user => { console.log("next:",user) })
将其删除。
工作代码段:
$('#linkedin-button').on('click', function() {
// Initialize with your OAuth.io app public key
OAuth.initialize('A5oDtHv-oUEVlR7q7hDolXxC7RE');
alert('init');
OAuth.popup('linkedin2').then(linkedin => {
alert('logged in');
linkedin.post({
url: "/v1/people/~/shares?format=json",
data: JSON.stringify({
"comment": "Hello world!",
"visibility": {
"code": "anyone"
}
}),
headers: {
"x-li-format": "json",
"Content-Type": "application/json"
}
}).then(data => {
console.log("success:", data);
}).fail(err => { console.log("err:",err) });
})
})