OneDriveからファイルを読み書きするための実装として、krizalysのライブラリを使用してみました。ビジネスアカウントでも機能するはずですが、個人アカウントでも機能するのであれば便利です。
krizalysの例で使用されているLiveSDKがまもなくオフラインになることを読んだので(ここで説明)、代わりにMicrosoftGraphを実装してみました。
現在、アクセストークンを取得する方法を2つ実装しました。1つは付与タイプpassword
(このサンプルのgetAccessTokenメソッドを使用)を使用し、もう1つはclient_credentials
(krizalys libのように)を使用します。どちらも、仕事に思えると戻るaccess_token
とrefresh_token
、私は、要求をしようとするとき、私はメッセージが表示されます。
"InvalidAuthenticationToken [メッセージ] =>アクセストークンが空です"
私のリクエストのコード:
$data = array("name" => "test");
$url = "https://graph.microsoft.com/v1.0/me/drive/root";
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $url, [
'headers' => [
'Authorization: Bearer ' . $this->_state->token->data->access_token,
'Content-Type: application/json',
'Content-Length: ' .strlen(json_encode($data))
],
'body' => json_encode($data),
]);
また、GETメソッドで試してHost: graph.microsoft.com
、これが問題にならないようにを追加しました。
$url = "https://graph.microsoft.com/v1.0/me";
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', $url, [
'headers' => [
'Authorization: Bearer ' . $this->_state->token->data->access_token,
'Host: graph.microsoft.com'
],
]);
アプリケーションはhttps://apps.dev.microsoft.comで構成され、アクセス許可が設定されます。私のリクエストに何か問題はありますか?なぜいつもInvalidAuthenticationToken
メッセージが届くのかわかりません。ありがとう。
アプリケーションをv2エンドポイント(apps.dev.microsoft.com
)に登録しましたが、使用しているサンプルコードはv1エンドポイント用です。これらは互換性がありません。また、password
(v2のサポートv2のエンドポイントの有効なOAuthのグラントではないauthorization_code
、implicit
とclient_credentials
)
v2エンドポイントからトークンを取得する必要があります。あなたはこれらの記事が役に立つと思うかもしれません:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加