Я хочу подключиться к Google+ API, получить access_token, а затем заняться другими делами.Я сделал форму Windows с соответствующей кнопкой.Но я не могу вернуться в окно программы после получения токена.Должен также сказать, что я новичок в асинхронном программировании.
Я использовал эту статью, чтобы узнать, как аутентифицировать - http://www.daimto.com/googleplusapi-search-csharp/. Итак, мой код:
using System;
using System.Net;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Plus.v1;
using Google.Apis.Services;
(...)
static string client_id = "XXXX.apps.googleusercontent.com";
static string client_secret = "yyyy";
ClientSecrets secrets = new ClientSecrets { ClientId = client_id, ClientSecret = client_secret };
string[] scopes = new string[] { PlusService.Scope.PlusLogin, PlusService.Scope.UserinfoEmail, PlusService.Scope.UserinfoProfile };
private void button1_Click(object sender, EventArgs e)
{
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(secrets, scopes, Environment.UserName, CancellationToken.None).Result;
var service = new PlusService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "disserApp",
});
}
Послепри нажатии на кнопку все идет хорошо - браузер открыт, страница авторизации Google загружена.Я ввел свои учетные данные, дал разрешения и т. Д. Наконец, была получена пустая страница с текстом «Токен доступа. Вы можете закрыть это окно».Я закрыл окно браузера и вернулся к своей программе.Но это было заморожено!Кнопка 1 по-прежнему отображается как ckickining и т. Д. Похоже, что программа ожидает сигнала об окончании асинхронной операции.Что я делаю неправильно?Спасибо.