1

我正在尝试使用UWPCommunityToolkit中的Twitter 服务,该服务作为独立的 UWP(通用 Windows 平台)应用程序运行,但是当我将其作为库导入 Unity(2017.2.0f3)时,它不会打开身份验证窗口。

这是工作的独立 UWP 应用程序上显示的内容:

应该发生什么

统一时,它似乎通过了设置代码,但没有正确运行此行:

var result = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, startUri, endUri);

https://github.com/Microsoft/UWPCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.Services/Services/Twitter/TwitterDataProvider.cs#L293

它只是返回WebAuthenticationStatus.UserCancel,而在独立的 UWP 上,它会返回WebAuthenticationStatus.SuccessWebAuthenticationStatus.UserCancel请注意,当用户单击弹出窗口上的关闭按钮时,它也会在独立的 UWP 应用程序上返回。

是否可以在 Unity中运行WebAuthenticationBroker.AuthenticateAsynchttps://docs.microsoft.com/en-us/windows/uwp/security/web-authentication-broker )?有没有其他方法可以使用 Unity 在 Windows 平台上进行 Web 身份验证?

我也尝试过TwitterKit,但不幸的是,它不支持 Windows UWP(仅限 iOS 和 Android)。

谢谢!

4

1 回答 1

1

LINQ to Twitter 支持 UWP。它有一个UniversalAuthorizer像这样工作的:

    private async void TweetButton_Click(object sender, RoutedEventArgs e)
    {
        var authorizer = new UniversalAuthorizer
        {
            CredentialStore = new InMemoryCredentialStore
            {
                ConsumerKey = "",
                ConsumerSecret = ""
            }
        };

        await authorizer.AuthorizeAsync();
        var ctx = new TwitterContext(authorizer);

        string userInput = tweetText.Text;
        Status tweet = await ctx.TweetAsync(userInput);

        ResponseTextBlock.Text = tweet.Text;

        await new MessageDialog("You Tweeted: " + tweet.Text, "Success!").ShowAsync();
    }

查看 Samples 文件夹以获取完整列表:https ://github.com/JoeMayo/LinqToTwitter

于 2017-12-13T00:40:24.570 回答