我正嘗試使用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