我正在开发Windows应用程序。我使用以下代码获得gmail联系。 但在这种情况下,我必须登录并接受浏览器表单(GoogleLoginForm)的许可。 我想跳过这个" oauth对话框"。
我已经提到了堆栈溢出和谷歌开发人员的几乎链接。但是我没有得到很多帮助。反正有没有跳过浏览器的权限?
请建议。
这是我的主要表格。
string SCOPE = "https://www.google.com/m8/feeds/ https://apps-apis.google.com/a/feeds/groups/";
string REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob";
OAuth2Parameters parameters = new OAuth2Parameters();
parameters.ClientId = CLIENT_ID;
parameters.ClientSecret = CLIENT_SECRET;
parameters.RedirectUri = REDIRECT_URI;
parameters.Scope = SCOPE;
string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
Uri loginUri = new Uri(url);
GoogleLoginForm objForm = new GoogleLoginForm(loginUri);
DialogResult result= objForm.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
parameters.AccessCode = objForm._OAuthVerifierToken;
}
OAuthUtil.GetAccessToken(parameters);
RequestSettings reqSettings = new RequestSettings("myapplication", parameters) { AutoPaging = true };
ContactsRequest contReq = new ContactsRequest(reqSettings);
Feed<Google.Contacts.Contact> Contacts = contReq.GetContacts();
我通过以下代码获得AccessCode。
public GoogleLoginForm(Uri url)
{
InitializeComponent();
_loginUri = url;
}
public GoogleLoginForm(Uri loginUri)
{
// TODO: Complete member initialization
this._loginUri = loginUri;
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
string fullPath = e.Url.ToString();
WebBrowser control = sender as WebBrowser;
if (control != null && !string.IsNullOrEmpty(control.DocumentTitle) && control.DocumentTitle.Contains("Success code"))
{
_OAuthVerifierToken = control.DocumentTitle.Replace("Success code=", "");
DialogResult = DialogResult.OK;
}
}
private void GoogleLoginForm_Load(object sender, EventArgs e)
{
webBrowser1.Url = _loginUri;
}