0

我已经阅读了所有关于使用 WP7 的 twitter api 的教程。这是我第一次使用 oauth,它可能会很混乱。我正在努力做到这一点,以便我的用户可以在推特上发布消息和图片。我浏览了关于 oauth 和其他几个教程的本教程(但我正在使用这个 atm):

http://sudheerkovalam.wordpress.com/2010/08/28/a-windows-phone-7-twitter-application-part-1/#comment-251

在 stackoverflow 上还发现了一些关于在此处发布照片的帮助:

直接上传图片到推特

但是对于上面博客文章中描述的身份验证部分,我一直在“”行上得到一个“KeyNotFoundException”,OAuthTokenKey = parameters["oauth_token"];我试图弄清楚,但在我第一次这样做时无法想出任何东西。其他地方似乎没有太多帮助,因为每个教程都使用了难以组合的不同技术,所以我来找你们。如果您知道修复方法,请告诉我!或者,如果您知道最近有一个很好的教程,请告诉我!

4

2 回答 2

1

我为 LINQ to Twitter 示例更新了将图片直接上传到 twitter的代码,为方便起见,在此重复:

    private void PostButton_Click(object sender, RoutedEventArgs e)
    {
        if (string.IsNullOrWhiteSpace(TweetTextBox.Text))
            MessageBox.Show("Please enter text to tweet.");

        ITwitterAuthorizer auth = SharedState.Authorizer;
        if (auth == null || !auth.IsAuthorized)
        {
            NavigationService.Navigate(new Uri("/OAuth.xaml", UriKind.Relative));
        }
        else
        {
            var twitterCtx = new TwitterContext(auth);

            var media = GetMedia();

            twitterCtx.TweetWithMedia(
                TweetTextBox.Text, false, StatusExtensions.NoCoordinate, StatusExtensions.NoCoordinate, null, false,
                media,
                updateResp => Dispatcher.BeginInvoke(() =>
                {
                    HandleResponse(updateResp);
                }));
        }
    }

此页面上有一个示例,您可以加载和测试:

http://linqtotwitter.codeplex.com/wikipage?title=LINQ%20to%20Twitter%20Samples

我认为问题的一部分可能是我在上一页发布了一个同步示例,该示例适用于客户端和 Web 应用程序,但不适用于 WP7。

在 Windows Phone 中执行 OAuth 时的一个重要提示是,您必须将模拟器上的时钟设置为当前时间。还要注意时区,这可能会让事情变得很糟糕。OAuth 使用必须与 Twitter 服务器同步的时间戳。

我最近还修复了一些与 Twitter 最近更改相关的问题,因此如果您在其他查询中遇到问题,可下载源代码在这里,您可以在其中获取最新更改:

http://linqtotwitter.codeplex.com/SourceControl/list/changesets

于 2012-07-06T02:36:57.580 回答
1

试试这个进行身份验证,它对我很有用,我在我的应用程序中使用它:

http://igrali.com/2012/06/17/twitter-authentication-from-windows-phone-app/

之后,您将获得使用此处提供的样本之一上传照片所需的信息。

请记住,您在问题中提到的第一篇博客文章是从 2010 年开始的。从那时起,Twitter 方面的情况可能已经发生了变化(并且可能已经发生了变化!)。

于 2012-07-06T07:32:06.817 回答