我已经设置了一个.NET控制台应用程序,它将执行以下操作:
我相信使用以下文档可以直接执行CRUD操作:
https://developers.google.com/google-apps/contacts/v3/#about_authorization_protocols
但是,尝试使用OAuth2.0验证我的连接时出现问题。
我正在使用Google.GData.Contacts .NET NUGET Package,使用以下示例中的代码:
OAuth2Parameters parameters = new OAuth2Parameters() {
ClientId = clientId,
ClientSecret = clientSecret,
RedirectUri = redirectUri,
Scope = scopes
};
string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
Console.WriteLine("Authorize URI: " + url);
parameters.AccessCode = Console.ReadLine();
OAuthUtil.GetAccessToken(parameters);
由于此代码最后一次更新于2012年,我担心它可能不再与我的任务相关。
主要问题:
答案 0 :(得分:0)
access code
只能用于WebServer Applications。
我不确定您的控制台应用是否会在可以启动浏览器的环境中运行。
如果是(您的应用在可以启动网址的环境中运行),请使用Installed Applications的文档。
如果浏览器不存在,您可以使用Applications on limited-input devices的文档。
如果您要使用的库(NUGET,无论如何)不支持此流程,请不要担心:编写自定义代码很容易。您可以使用任何能够执行HTTP / HTTPS请求的库,例如或Windows.Web.Http.HttpClient(Windows 8及更高版本)。
此外,您可以使用CloudSponge之类的联系人导入服务,该服务提供.Net API并支持其他联系人来源(如果您希望将来扩展您的地址簿支持)。
答案 1 :(得分:0)
AccessCode来自上面该行中创建的URL。见这里:
string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
url现在包含您的浏览器的网址。在Chrome / Firefox /等中填写并确认google请求以获取AccessCode。它看起来像“4 / bAQT1qf66vpkmfU8xDkoVZmedvVoYDH6KovzcHcA5pc”,但每次调用URL时都会改变。
Console.WriteLine("Authorize URI: " + url);
现在您可以看到该网址,但您可能无法从控制台复制该网址。但是如果你把它放到你的浏览器中,它将导致谷歌对话框来获取你的AccessCode。