我正在尝试使用Google Apps电子邮件迁移API开发winform应用程序。我也想使用2条腿oAuth。
我已成功将2脚oAuth用于联系人数据API。为此,我在“管理客户端API访问”页面上设置了API范围“http(s)://www.google.com/m8/feeds/”。 (http://www.google.com/support/a/bin/answer.py?hl=en&answer=162106)
对于电子邮件迁移功能,我将范围设置为“https://apps-apis.google.com/a/feeds/migration”。但我得到“401:UnAuthorized access”错误。
我的代码是这样的:
GOAuthRequestFactory requestFactory = new GOAuthRequestFactory("MailItemService", "company-application-v1");
requestFactory.ConsumerKey = "domainname";
requestFactory.ConsumerSecret = "consumersecret";
MailItemService mailItemService = new MailItemService("domainname", "company-application-v1");
mailItemService.RequestFactory = requestFactory;
MailItemEntry entry = new MailItemEntry();
entry.Rfc822Msg = new Rfc822MsgElement(rfcTextOfMessage);
entry.MailItemProperties.Add(MailItemPropertyElement.STARRED);
entry.MailItemProperties.Add(MailItemPropertyElement.UNREAD);
entry.MailItemProperties.Add(MailItemPropertyElement.INBOX);
entry.Labels.Add(new LabelElement("Friends"));
entry.Labels.Add(new LabelElement("Event Invitations"));
entry.BatchData = new GDataBatchEntryData();
entry.BatchData.Id = "0";
MailItemEntry[] entries = new MailItemEntry[1];
entries[0] = entry;
MailItemFeed feed = mailItemService.Batch("domainname", user, entries);
我们如何使用电子邮件迁移API实施2脚oAuth。
谢谢!
答案 0 :(得分:0)
要在OAuth 1.0a中使用双向OAuth,您需要指定执行操作的人员。这是API将检查正确访问的用户。由于使用者密钥和密钥可以完全访问您的域,因此您可以冒充任何用户并让请求通过。
对于电子邮件迁移API,您需要模拟要迁移电子邮件的用户。将URL参数“xoauth_requestor_id”设置为用户的完整电子邮件地址,并且请求应该通过。
答案 1 :(得分:0)
范围是:
https://apps-apis.google.com/a/feeds/migration/
您错过了代码中的最后一个/。此外,如果您使用的是Google Apps域的主OAuth密钥(密钥是主域),但您要迁移到辅助域用户,则需要手动授予对所有域的主OAuth密钥访问权限,或者设置第三方OAuth客户端。 Google Exchange迁移工具的管理指南介绍了如何配置: