Google windows phone 商店应用的 apis sdk

Google apis sdk for windows phone store app

我开发了 windows phone 商店应用程序并集成了 google 登录而不使用 Google.Apis sdk。

我使用了 WebAuthenticationBroker,它工作正常。

更新 1:

现在我正在尝试探索用于 google 登录集成的更新 Google.Apis SDK。

我可以通过以下方式进入 google 登录屏幕:

credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                new Uri("ms-appx:///Assets/client_secrets.json"),
                new[] { "openid", "email" , "profile"},
                "user",
                CancellationToken.None);

并且在 webAuthenticationResult 中得到包含 code 需要进一步的响应。

但是,为了进一步使用它,我需要知道它提供的所有 APIs 除了 GoogleWebAuthorizationBroker.AuthorizeAsync,是否有任何 API 文档 您解释了 Blogger/Drive APIs 但没有解释 APIs 正常登录流程需要的访问令牌过期处理。

如果您能抽出时间指导我如何使用此 SDK 进行第二次应用程序启动,使用刷新令牌处理令牌过期,我将非常感谢,因为我看到它每次都导航到登录页面我用 GoogleWebAuthorizationBroker.AuthorizeAsync.

我们应该处理所有这些场景还是 SDK 来处理?

非常感谢 Peleyal 的任何帮助。 谢谢。

我今天早些时候更新了文档,以包含在 Windows Phone 8.1 应用程序中使用 OAuth 2.0 的简短教程。

看看:https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth#wp81

更新:

值得一提的是,作为 Google Apis Auth 库的一部分,当获取授权代码时,应用程序会将其替换为刷新和访问令牌。
访问令牌将使用刷新令牌自动刷新,您可以在以下位置找到:https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth#credentials

更新 2:
按照说明,我看到流程让我们的一些用户感到困惑(我会尽快更新文档),我试图在这里说清楚:

  • 在您第一次需要访问 Google API 时,您应该调用 GetFilesAsync(或其他一些函数访问文件\视频\博客或任何你正在使用的 API)。
    这最终将导致调用 GoogleWebAuthorizationBroker.AuthorizeAsync。 该实现检查是否已经存在访问和刷新令牌,因为没有,它继续使用 SerializableWebAuthResult.Name 检查授权代码是否保存在数据存储中。事实并非如此,因此它启动暂停当前应用程序并打开登录的授权流程 window.

  • 应用程序再次激活后,我们调用延续管理器来继续流程(文档中的第 5 步),后者又调用 ContinueWebAuthentication(步骤 6)。
    ContinueWebAuthentication 存储我们刚刚收到的授权码并再次调用 GetFilesAsync。这次数据存储中存在授权码,因此 AuthorizeAsync 方法用它交换访问和刷新令牌并将它们存储在数据存储中。然后由开发人员负责从数据存储中删除授权码(使用 SerializableWebAuthResult.Name 键。将来可能会简化此步骤)。

  • 请注意,此时存储了访问令牌和刷新令牌,因此以后对 GetFilesAuthorizeAsync 的任何调用都会导致从数据存储中检索令牌并检查访问令牌是否仍然有效,如果无效 - 库将使用刷新令牌自动为您刷新它。

希望它能让流程更清晰,请随时添加更多评论,这样我会尽量让这个流程更清晰。