2016-12-06 14 views
1

アバカードAPI経由でYammerからデータを取得したいのですが、すべてのビューがapiで作成されていますが、私は以下のリンクに従っています。コードは、アボカド残りのAPIからデータをプルするには、いくつかのコードで私を助けてくれますか?ここアバカードレストAPIを使用してyammerからデータを引き出すコード#

はここに参照 https://avocadowiki.azurewebsites.net/wiki/Backend_API_Client_Examples

のAPIリンクはレポートがあなたの説明によると

https://avocado/

+0

この問題は解決しましたか? –

答えて

1

をリンクされている、私は私の側にそれをテストする場合は、このavocado-console-clientサンプルを追いました。次のようにauthCtx.AcquireTokenAsyncにNuGet

2.Modify機能authCtx.AcquireToken経由で最新の安定版(3.13.8)に

1.Update Microsoft.IdentityModel.Clients.ActiveDirectory:予想通り、私はあなたが以下の手順を参照してください可能性があり、それを動作させることができ:あなたのネイティブアプリ3.Register

var authResult = await authCtx.AcquireTokenAsync(avocadoResourceUri, thisConsoleAppClientId, thisConsoleAppUri, new PlatformParameters(PromptBehavior.Auto)); 

と "AzureのActive Directoryの">「アプリケーションREGをクリックし、Azure PortalにしてthisConsoleAppClientIdthisConsoleAppUri

サインオンを変更次のようにistrations」、あなたのネイティブアプリを追加するためにbuttionの追加]をクリックします:thisConsoleAppClientIdについては

(クライアントアプリID)を、あなたは、Azureのポータル上でそれを見つけることができる:

thisConsoleAppUri(アプリの返信先URL):

注:アボカドのAPIにアクセスするには、アボカドに委任許可を得て、あなたのアプリケーションを割り当てる必要があります。

AzureでADアプリケーションを選択します。設定ブレードで、アクセス許可を追加し、[サービスへのフルアクセス権を持つ]オプションを選択するには、[必須アクセス権]をクリックします。

注:あなたは入力Avocado [wsfed enabled]はアボカドのAPIを選択することができます。

設定が完了したら、テストすることができます。ここに私のコードスニペットがあります:

プログラムです。CS

class Program 
{ 
    static void Main(string[] args) 
    { 
     AvocadoDemo(); 
     Console.WriteLine("press any key to exit..."); 
     Console.ReadKey(); 
    } 

    static async Task AvocadoDemo() 
    { 
     string thisConsoleAppClientId = "c588cf8d-8651-4b37-8d10-49237cf92f8e"; 
     Uri thisConsoleAppUri = new Uri("http://bruceConsoleForAvocado"); 
     string avocadoResourceUri = "https://microsoft.onmicrosoft.com/Avocado"; 
     // Get the access token for Avocado. This will pop up the login dialog and consent page for the first time. 
     // Then the token will be cached in the FileCache, and AcquireToken will renew the token automatically in the subsequent run. 
     AuthenticationContext authCtx = new AuthenticationContext("https://login.windows.net/microsoft.onmicrosoft.com", new FileCache()); 
     var authResult = await authCtx.AcquireTokenAsync(avocadoResourceUri, thisConsoleAppClientId, thisConsoleAppUri, new PlatformParameters(PromptBehavior.Auto)); 

     if (!string.IsNullOrEmpty(authResult.AccessToken)) 
      Console.WriteLine("accessToken: " + authResult.AccessToken); 

     // call Avocado API 
     var baseAddress = new Uri("https://avocado"); 
     var cookieContainer = new CookieContainer(); 

     // POSTing a new execution will invoke a redirect, so for example purposes we are disabling it here. 
     using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer, AllowAutoRedirect = false }) 
     using (var client = new HttpClient(handler) { BaseAddress = baseAddress }) 
     { 
      // Need to set this cookie for avocado api to work. 
      cookieContainer.Add(baseAddress, new Cookie("deep_link", "-1")); 

      // add your access token in the header 
      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken); 

      // Here's a GET example 
      var avoResultGet = client.GetAsync("/schedules/7215.json").Result; 
      var strGet = avoResultGet.Content.ReadAsStringAsync().Result; 
      Console.WriteLine("Avocado API returns: " + strGet); 
     } 
    } 
} 

結果

あなたが認証されているので、あなたが望むように、特定のAPIを呼び出すためAPI Documentationを参照することができます。

関連する問題