我可以在 Windows Phone 8.1 应用程序中使用 GoogleWebAuthorizationBroker 请求访问 Google 表格 API 吗?

Can I use GoogleWebAuthorizationBroker to request access to the Google Sheets API in a Windows Phone 8.1 app?

与 Google 驱动器(和其他 Google 服务)一起使用的 .NET client libraries for Google Sheets API have not been updated since Jun 2013, and so cannot be added to a Windows Phone 8.1 application. However, Google has published an Auth NuGet package 并且 支持 Windows Phone8.1.

example for using OAuth 2 with Windows Phone 8.1 中,他们演示了请求 DriveService.Scope.DriveReadonly 作为列出 Google 驱动器中可用文件的一种方式。但是,我找不到 Google Sheets 的任何类似命名的常量,而且似乎没有任何 Google Docs 相关的 NuGet 包。

我可以使用 GoogleWebAuthorizationBroker.AuthorizeAsync 请求应用访问 Google 表格吗?

是的!

Google Sheets API documentation 表示 "scope information for the Google Sheets API" 位于 https://spreadsheets.google.com/feeds

sample(步骤 6c)更新为

credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                  new Uri("ms-appx:///Assets/client_secrets.json"),
                  new[] { DriveService.Scope.DriveReadonly,

                         // Add our new scope here...
                         "https://spreadsheets.google.com/feeds" },

                  "app-name",
                  CancellationToken.None);

将授予应用程序访问 Google 表格的权限。

不幸的是,之后您必须手动调用表格 API,因此请记住包含

  • v=3.0 在查询字符串本身或 GData-Version: 3.0 作为 header (link).
  • an Authorization header形式为Bearer {AccessToken}AccessToken 被抓取自
    • credential.TokenAuthenticateAsync 之后 GoogleWebAuthorizationBroker.AuthorizeAsync returns.
    • (service.HttpClientInitializer as Google.Apis.Auth.OAuth2.UserCredential).Token 中登录后的任何时间。