0

カスタムウェブサイトにグーグルログインを使用しています。ここで私はそれのためのコードを書きました

var sOAuthServiceEndPoint = "https://accounts.google.com/o/oauth2/auth?scope=http://gdata.youtube.com https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email&response_type=token&";
var sOAuthRedirectURL = "http://example.com/testpage/test.html";
var termsAndCondURL = "termsandcondition.html";
var sOAuthClientID = "294016263542.apps.googleusercontent.com"; 
var sAuthenticationURL = sOAuthServiceEndPoint + "redirect_uri=" + sOAuthRedirectURL + "&client_id=" + sOAuthClientID;  

以下の関数を使用してアクセストークンを取得しました

    function fnOnLoad() {
      //alert("Form Loaded");
      var sAccessToken = '';
      var params = {}, queryString = location.hash.substring(1),regex = /([^&=]+)=([^&]*)/g, m;
      while (m = regex.exec(queryString)) {
            params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
        }
        if(params.error){
            if(params.error == "access_denied"){
                sAccessToken = "access_denied";
                alert(sAccessToken);
            }
        }else{
                sAccessToken = params.access_token;
                alert(sAccessToken);
        }
        window.opener.fnAuthorisationSuccess(sAccessToken);
        window.close();
    }

それはうまく機能していて、私が望む他のページにリダイレクトします。しかし、私の問題は、ユーザーのログイン名を取得する方法です。

私はそれにjavascriptを使用しています。

前もって感謝します

4

1 に答える 1

1

これは、ドキュメントに記載されています。

アプリケーションがアクセストークンを取得し、(必要に応じて)検証した後、GoogleAPIにリクエストを送信するときにそのアクセストークンを使用できます。https://www.googleapis.com/auth/userinfo.profileスコープがアクセストークンリクエストに含まれている場合は、アクセストークンを使用して、UserInfoエンドポイントを呼び出すことでユーザーの基本的なプロファイル情報を取得できます。

終点: https://www.googleapis.com/oauth2/v1/userinfo

名前、ユーザーID、性別、生年月日、写真、ロケール、タイムゾーンなどの基本的なユーザープロファイル情報を返します。https://www.googleapis.com/auth/userinfo.emailスコープがリクエストに含まれている場合、ユーザーのメールアドレスもレスポンスに含まれます。メールが確認済みの場合は、メールが確認済みのアドレスであることを示すフィールドもあります。

于 2013-03-13T06:40:44.603 に答える