0
0

Microsoft Graph API を Graph Client Service を利用せずに GET PUT POST を HTTPで実行する(C#)

Posted at

1. はじめに

本記事は、こちらの記事の続きです。よろしければ先にご覧ください。

では早速、Microsoft Graph API の GET PUT POST をHttpClientで実行するメソッドを実装していきましょう。

2. 実装

HTTPメソッドにおける、 GET PUT POST についての詳細な説明はこちらをご覧ください。

2.1. GET

private async Task<string> GetHttpContentWithToken(string endPoint, string token)
{
    try
    {
        //認証ヘッダーをトークンに追加
        var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, endPoint);
        request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

        var response = await m_HttpClient.SendAsync(request);
        var content = await response.Content.ReadAsStringAsync();

        return content;
    }
    catch (Exception ex)
    {
        return ex.ToString();
    }
}

endPointにはエンドポイントなるものが、tokenには、前回の記事で取得した認証トークンが入ります。

エンドポイントの例を以下に記します。

$@"https://graph.microsoft.com/v1.0/me/drive"

これは自身のファイル情報を取得するものになります。
エンドポイントを指定することで、他にも様々な情報の取得が可能になります。
取得できる情報を知りたい方は、MSの公式ドキュメントを参照してください。

2.2. PUT

今回は、ファイルのアップロードに使用しました。
従ってfilePthには、アップロードするファイルのパスを設定しています。

private async Task<string> PutHttpContentWithToken(string endPoint, string token, string filePath)
{
    try
    {
        //認証ヘッダーをトークンに追加
        var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Put, endPoint);
        request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

        byte[] binaryData = FileToByteArray(filePath);
        ByteArrayContent binArrayContent = new ByteArrayContent(binaryData);
        request.Content = binArrayContent;

        var response = await m_HttpClient.SendAsync(request);
        var content = await response.Content.ReadAsStringAsync();

        return content;
    }
    catch (Exception ex)
    {
        return ex.ToString();
    }
}

レクエストには、ファイルの中身をバイナリにして渡しています。

2.3. POST

private async Task<bool> PostHttpContentWithToken(string endPoint, string token)
{
    try
    {
        //認証ヘッダーをトークンに追加
        var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, endPoint);
        request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

        var response = await m_HttpClient.SendAsync(request);
        var isSuccess = response.IsSuccessStatusCode;

        return isSuccess;
    }
    catch
    {
        return false;
    }
}

3. 終わり

今回は、HTTPを使って、Microsoft Graph APIを実行しました。
このメソッドさえあれば、あとは任意のAPIをendpointに当てはめるだけで、さまざまなAPIの実行が可能になります。

引き続き、さまざな記事を投稿していこうかと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0