Google+ API: как я могу использовать RefreshTokens, чтобы не запрашивать доступ при каждом запуске моего приложения?

Я пытаюсь использовать API Google+ для доступа к информации для аутентифицированный пользователь. Я скопировал код из одного из образцов, который отлично работает (см. Ниже), однако мне не удается заставить его работать таким образом, чтобы я мог повторно использовать токен при запуске приложений.

Я попытался записать свойство RefreshToken и использовать provider.RefreshToken () (среди прочего) и всегда получал ответ 400 Bad Request .

Кто-нибудь знает, как это сделать, или знает, где я могу найти образцы? Сайт Google Code , похоже, не покрывает это: - (

class Program
{
    private const string Scope = "https://www.googleapis.com/auth/plus.me";

    static void Main(string[] args)
    {
        var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description);
        provider.ClientIdentifier = "BLAH";
        provider.ClientSecret = "BLAH";
        var auth = new OAuth2Authenticator(provider, GetAuthentication);

        var plus = new PlusService(auth);
        plus.Key = "BLAH";
        var me = plus.People.Get("me").Fetch();
        Console.WriteLine(me.DisplayName);
    }

    private static IAuthorizationState GetAuthentication(NativeApplicationClient arg)
    {
        // Get the auth URL:
        IAuthorizationState state = new AuthorizationState(new[] { Scope });
        state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
        Uri authUri = arg.RequestUserAuthorization(state);

        // Request authorization from the user (by opening a browser window):
        Process.Start(authUri.ToString());
        Console.Write("  Authorization Code: ");
        string authCode = Console.ReadLine();
        Console.WriteLine();

        // Retrieve the access token by using the authorization code:
        return arg.ProcessUserAuthorization(authCode, state);
    }
}

23
задан Danny Tuppeny 17 September 2011 в 12:59
поделиться