2014-12-08 2 views
0

Rammer API를 사용하여 Yammer의 다른 네트워크에 메시지를 게시하려고합니다. 내가 로그인 한 주요 회사에게 특정 그룹에 메시지를 성공적으로 읽고 게시했지만 다른 네트워크의 그룹에서는 읽을 수 있지만 게시는 할 수 없습니다. 참고 다른 네트워크에서 게시물을 읽을 때 게시 된 URL 에 회사 이름을 추가하기 만하면됩니다. 나는 그것이 작동하지 않습니다 게시 된 URL에 회사 이름을 사용하는 유사한 이데올로기를 사용하여 메시지를 게시하려고하면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; 
    } 
} 

그러나 이것은 좋은 독서 메시지를 작동합니다. 비슷한 게시물에서 자녀 회사 무기명 토큰을 받고 게시 된 헤더를 통해 전달해야합니다. 여기에 내가 함께하고 URL에서 "myChildCompany는"그러나 아무것도 작동하는 것 같다하지 않고 시도

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 
       }); 
      } 

내가 사용하는 게시 된 코드는 ....입니다. 응답을 확인하고 오류 : 401 Unauthorized를 반환합니다. 모회사에 게시하는 데 문제가 없습니다.

누구나이 경험이 있었고 올바른 방향으로 나를 가리킬 수 있습니까? 도움을 주시면 감사하겠습니다.

답변

0

나는 내 자신의 질문에 대답했다 ... 이제는 내가하고있는 일이 좀 바보 같았다. 필요한 것은 요청 헤더에 토큰을 수동으로 설정하는 대신 yammer api를 사용하여 myChildCompany의 토큰으로 인증 토큰을 설정하는 것뿐이었습니다. 또한 이전 시도에서 시도한 것처럼 yammer api에 자식 회사의 URL을 사용하지 마십시오.

자바를 사용하여 Yammer의 주요 회사 외부 그룹에 메시지를 게시해야하는 다른 사용자를 위해 수정 된 코드입니다.

function PostMessage() 
{ 
     yam.request.setAuthenticator('oauth2'); 
     yam.request.getAuthenticator({ auth: 'oauth2' }).setAuthToken('xxxxxxxxxxxxxx'); 
     var access_token = "";  
     yam.request(
     { 
     url: "https://api.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.getAuthenticator({ auth: 'oauth2' }).setAuthToken(access_token); 
      yam.request(
      { 
       url: "https://api.yammer.com/api/v1/messages.json", 
       method: "POST", 
       data: { "body" : "123", "group_id":"4762174"} // Pass "myChildCompany's Group ID here 
      }); 
      } 
     }); 
    } 
+0

죄송합니다 그냥 내가 옆으로 바로 추가 할 수 있습니다 생각 한 가지 더 ... 모든 URL 링크는 https://api.yammer.com/api/v1/ 대신 www.yammer.com해야한다/api/v1/그렇지 않으면 Chrome에서 '동일하지 않음'오류로 끝납니다. 나는 나의 대답을 업데이트했다. –

+0

yam.request 노드가 현재 API 구현에 더 이상 존재하지 않음을 확인할 수 있습니까? – joweiser