我正尝试使用REST api将邮件发布到Yammer中的另一个网络。对于我登录的主要公司,我已成功阅读并向特定的组发布消息,但是我可以从另一个网络的组中读取,但不能发布。 请注意,当我从另一个网络阅读帖子时,我只需将公司名称添加到发布的网址 例如。使用Yammer Javascript API将邮件发送到Yammer中的特定网络
function GetMessages()
{
yam.request.setAuthenticator('oauth2');
yam.request.getAuthenticator({ auth: 'oauth2' }).setAuthToken('xxxxxxxxxxxxxxx');
var access_token = "";
yam.request(
{
url: "https://api.yammer.com/childCompanyName/api/v1/messages/in_group/4787320.json", method: "GET",
success: function (results)
{
alert("The request was successful.");
return results;
}
}
然而,这工作正常阅读的邮件,如果我尝试使用在投稿网址不起作用使用的公司名称相似的意识形态来发布消息。我在一篇类似的文章中读到,您需要获得子公司的持有人令牌并将其传递给公布的标题。下面是贴码我用....
function PostMessage()
{
yam.request.setAuthenticator('oauth2');
yam.request.getAuthenticator({ auth: 'oauth2' }).setAuthToken('xxxxxxxxxxxxxx');
var access_token = "";
yam.request(
{
url: "https://www.yammer.com/api/v1/oauth/tokens.json",
method: "GET",
success: function(msg)
{
var access_token = "";
for (var i=0; i < msg.length; i++)
{
//GRAB THE TOKEN FOR THE DESIRED NETWORK
if (msg[i].network_permalink == "myChildCompany")
{
access_token = msg[i].token; //this works
break;
}
}
yam.request({
url: "https://www.yammer.com/myChildCompany/api/v1/messages.json",
method: "POST",
beforeSend: function (req)
{
req.setRequestHeader("Authorization", "Bearer " + access_token);
},
data: { "body" : "123", "group_id":"4762174"} // Pass ur Group ID here
});
}
我有这样的有和无“myChildCompany”中的URL但似乎没有任何工作尝试。我检查了响应,它返回一个错误:401未经授权。我没有问题发布给母公司。
任何人都有这方面的经验,也许可以指出我在正确的方向吗? 任何帮助表示赞赏。
对不起还有一两件事,我想我可能只是添加为一个搁置... 所有URL链接应该https://api.yammer.com/api/v1/而不是www.yammer.com/api/v1 /否则最终会出现Chrome中的“不同源”错误。我已经更新了我的答案。 – 2014-12-09 02:59:22
您是否确认当前API实现中不再存在节点yam.request? – joweiser 2015-06-22 13:13:59