我想将WebAuthenticationBroker与Pocket(http://getpocket.com)一起用于oAuth。 Pocket API在http://getpocket.com/developer/docs/authentication中进行了描述。问题是重定向uri。在他们的示例中,将其设置为针对iOS和Android的自定义协议。您如何在WinRT上处理呢?

当我提供一个空的重定向uri时,它不起作用。当提供类似http://www.google.sk的uri时,我会看到Pocket的授权对话框,我对我的应用程序进行了授权,然后将我重定向到http://www.google.sk。但是窗口无法关闭,我只能单击“后退”按钮,这将导致WebAuthenticationResult被取消。

最佳答案

WebAuthenticationBroker需要回调URI。如果在Web视图中调用此URI,则主机将结束导航并向代理发出信号-如web authentication broker workflow at MSDN中所述。

您要作为POST参数提交的Pocket API redirect_uri应该与WebAuthenticationBroker.GetCurrentApplicationCallbackUri相同。

您可以将其指定为第三个参数:

WebAuthenticationBroker.AuthenticateAsync(options, requestUri, callbackUri)


顺便说说:

如果您需要Pocket API的简单包装器,我为C#构建了一个名为PocketSharp的包装器

09-11 20:14