2

指定された URL:

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth% 2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=drive&redirect_uri=http%3A%2F%2Fwww.woktop.com%2Fnewservice.php&response_type=token&client_id=889314330670.apps.googleusercontent.com

リターン URL:

http://www.woktop.com/newservice.php#state=drive&access_token=ya29.AHES6ZRtTRmpakw5qa0SejLsC0qzNNb9R6GYF0xZGt_uphe3WfeeZng&token_type=Bearer&expires_in=3600

を(クエリ文字列を開始するために) に#変更すると、戻り URL は完全に機能します。?Google が を返し、「クエリ文字列を殺す」のは#なぜですか?

別注:

token別のメモとして、私が要求するべきか、それともcode応答型としてすべきかはよくわかりません。ユーザーに自分の Google ドライブ アカウントを私のウェブサイトのアカウントに関連付けてもらう予定です。ドキュメントを何度も読みましたが、どちらが自分の Web サイトに適しているかわかりません。今のところ (上記の例では) トークンを使用します。また、どちらを使用するかによって、将来使用するためにデータベースに何を保存する必要がありますか?

4

1 に答える 1

4

その理由は、のtoken代わりにをリクエストしていたためcodeです。コードを受け取ったとき、URLはハッシュ(#)なしでフォーマットされていましたが、クエリ文字列としてフォーマットされていました。この理由は私にはわかりませんが、ドキュメントにはtoken、重いJavascriptアプリケーションの応答タイプとしてのみ使用する必要があると記載されています。私が書いていたAPIコードはPHPであるためcode、明らかに適切な選択です。

于 2012-12-06T06:28:36.863 に答える