1

デスクトップ アプリケーションで C# 用の google+ API を使用しています。google+ ユーザーの友達リストにアクセスする必要があります。

ブラウザのタイトルからアクセストークンを抽出して取得しています。

次の権限(すべてグループ化され、同時に要求される)に対して正常に機能し、ブラウザのタイトルに認証コードを返します(success = authcode)。

                 "https://www.googleapis.com/auth/plus.me
                 "https://www.googleapis.com/auth/youtube",
                 "https://www.googleapis.com/auth/youtube.upload" 

でも友達リストの取得権限を変更したら、

                 "https://www.googleapis.com/auth/plus.login

目的の認証コードが返されず、成功した authuser=0&promt が返されるだけです...

ところで、ローカルの Web サーバーでは聞くことができません。上記のアクセス許可を使用してアクセス トークンを取得するにはどうすればよいですか?

4

1 に答える 1

2

これを確認したところ、plus.login スコープを使用している場合、ウィンドウ タイトルの成功文字列は実際には異なります。ただし、文字列で返されるコードは引き続き有効です。次のコードは、ウィンドウ タイトル文字列から認証コードを抽出する 1 つの方法を示しています。

    string pollActiveWindowForAuthCode(int sleepTime){
        string activeTitle = GetActiveWindowTitle();
        while (!activeTitle.StartsWith("Success"))
        {
            activeTitle = GetActiveWindowTitle();
            Thread.Sleep(sleepTime);
        }
        // strip to start of auth code
        string trimToAuthCode = activeTitle.Substring(activeTitle.LastIndexOf("=") + 1);
        // trim the " - Google Chrome" text
        return trimToAuthCode.Substring(0, trimToAuthCode.IndexOf(' '));
    }

より包括的なデモを GitHub にアップロードしました。

csharp-gplus-wpf

于 2013-06-28T00:29:45.510 に答える