私は自分のMicrosoftアカウントでログインできるようにするGraph APIで作業しています。私はGet started with Microsoft Graph in a PHP app の記事に従っています。必要なオプションが渡されません: "access_token"
は今、私はLaravelに新しいものではないんだけど、私はこの問題を把握するように見えることはできません。リーグOAuth2パッケージを使用しています。上記のリンクによれば、接続を確立する前にアクセストークンを取得する必要があります。さて、私は自分でデバッグをたくさん探していましたが、次は私が見つけたものです。
$token = $this->createAccessToken($prepared, $grant);
それがaccess_token
はこの前に存在するか否かをチェックするトークンを作成しようとします。今度はこの方法からaccess_token
が生成されると私は理解しています。だから、どうしたらそれがすでに存在するのだろうか。誰もがこれで私を助けてくれる?
Route::get('/oauth', function (Request $request) {
$provider = new \League\OAuth2\Client\Provider\GenericProvider([
'clientId' => 'client_id',
'clientSecret' => 'secret_key',
'redirectUri' => 'http://localhost:8000/oauth',
'urlAuthorize' => 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
'urlAccessToken' => 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
'urlResourceOwnerDetails' => '',
'scopes' => 'openid'
]);
if (!$request->has('code')) {
return redirect($provider->getAuthorizationUrl());
} else {
$accessToken = $provider->getAccessToken('authorization_code', [
'code' => $request->input('code')
]);
exit($accessToken->getToken());
}
});
ありがとう:
は、ここに私の経路コードです。
アップデートは今、私はこの
$url = 'https://login.microsoftonline.com/common/oauth2/v2.0/token';
$data = 'grant_type=authorization_code';
$data .= '&code=' . $request->input('code');
$data .= '&client_id=id_here';
$data .= '&client_secret=secret_here';
$data .= '&redirect_uri=http://localhost:8000/oauth';
$data .= '&scopes=openid user.read';
$additional_headers = array(
'Content-Type' => 'application/x-www-form-urlencoded'
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $additional_headers);
$server_output = curl_exec ($ch);
dd($server_output);
しかし、このCURLリクエストの出力/応答が 'token_id' オブジェクトを与えているようCURLリクエストを作ってるんです。 access_tokenの代わりに& expiry_in ...
あなたはあなたの記事の中で、同じ手順に従っています。しかし、認証コードを取得して、アクセストークンのPOSTリクエストを開始すると、上記のエラーが発生します。そのURLにPOSTリクエストを行うために何が使えますか教えてください。現在、私はこのプロバイダを使用しています。 リーグ\のOAuth2 \クライアント\プロバイダーの\ GenericProvider " –
すみません、私はあなたが「上記のエラー」で、あまりにも言及していたエラーが表示されません。 –
これで、curlでPOSTリクエストを作成できました。しかし今、私はid_tokenの応答を返されましたが、期待されたものは返されませんでした。 –