У меня возникла проблема с извлечением маркера доступа из URL-адреса перенаправления. Когда я пытаюсь выполнить свою закодированную процедуру на моем мозилле, я перенаправляюсь к моему локальному хосту с помощью токена доступа, но как мне создать экземпляр этого с помощью моего веб-браузера в C#? Мой текущий код выглядит следующим образом:Google REST API Windows Forms login
public partial class Form1 : Form
{
public string client_id = "CLIENT_ID";
public string client_secret= "CLIENT_SECRET";
public string redirect_uri = "http://localhost:5050";
public Form1()
{
InitializeComponent();
webBrowser.AllowNavigation = true;
webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
webBrowser.Navigate(String.Format("https://accounts.google.com/o/oauth2/auth?response_type=code&scope=email+profile&redirect_uri={0}&client_id={1}&hl=de&from_login=1&as=d832bdaf61552d&pli=1&authuser=0"
,redirect_uri, client_id));
}
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = sender as WebBrowser;
//MessageBox.Show(wb.Url.ToString());
if (wb.Url.ToString().StartsWith("http://localhost"))
{
String[] s = wb.Url.ToString().Split('=');
string authCode = s[s.Length - 1];
MessageBox.Show("auth Code: " + authCode);
//WebClient wc = new WebClient();
//var data = new NameValueCollection();
//data["code"] = authCode;
//data["client_id"] = client_id;
//data["client_secret"] = client_secret;
//data["redirect_uri"] = "http://localhost:5050";
//data["grant_type"] = "authorization_code";
//var response = wc.UploadValues("accounts.google.com/o/oauth2/token", "POST", data);
//foreach (byte a in response)
//{
// MessageBox.Show(a.ToString());
//}
}
}
Если вы знаете, как сделать это с помощью API GoogleDrive пожалуйста, поделитесь со мной.
В чем разница между WebBrowser и пользовательским интерфейсом WebBRows – carlilord
* UIWebBrowser. И какую сборку я должен добавить – carlilord
, какую структуру asp.net вы используете? –