【问题标题】:Twitter API [1.1] Authentication Request —Twitter API [1.1] 身份验证请求 —
【发布时间】:2017-12-30 03:17:07
【问题描述】:

在这方面需要大量帮助。基本上在我的应用程序中,我需要访问 twitter api,根据特定的搜索标签获取前 50 个帖子并显示它们。身份验证的议程自然而然地出现了。现在这给我带来了严重的麻烦。我的代码似乎无法正常工作,因为 - 身份验证数据错误 [215]。我已经使用 TweetSharp 包来构建我的代码。

我会在这里发布--

    public class TweetHelper
    public class TweetHelper
    {
        public static string _consumerKey = "whatever";
        public static string _consumerSecret = "whatever";
        public static string _accessToken = "whatever";
        public static string _accessTokenSecret = "whatever";

public static List<TwitterStatus> GetTweetList1()
    {
        TwitterService twitterService = new TwitterService(_consumerKey, _consumerSecret);
        int tweetcount = 1;

----> var tweets_search = twitterService.Search(new SearchOptions { Q = "#ClimateChange", Resulttype = TwitterSearchResultType.Popular, Count = 50 }); ----> twitterService.AuthenticateWith(_accessToken, _accessTokenSecret);

        List<TwitterStatus> resultList = new List<TwitterStatus>(tweets_search.Statuses);
        foreach (var tweet in tweets_search.Statuses)
        {
            try
            {
                tweet.User.ScreenName.ToString();
                tweet.User.Name.ToString();
                tweet.Text.ToString();
                tweet.RetweetCount.ToString();
                tweet.User.FavouritesCount.ToString();
                tweet.User.ProfileImageUrl.ToString();
                tweet.CreatedDate.ToString();
                ("https://twitter.com/intent/retweet?tweet_id=" + tweet.Id).ToString();
                ("https://twitter.com/intent/tweet?in_reply_to=" + tweet.Id).ToString();
                ("https://twitter.com/intent/favorite?tweet_id=" + tweet.Id).ToString();

                tweetcount++;
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
        return resultList;


    }

}

我知道 1.0 API 版本已被 twitter 弃用。 2.0 还没有到来。所以它必须是1.1。如您所见,这两条是问题线,错误发生的地方。我究竟做错了什么?或者我错误地接近了 API 版本中的哪条信息?不可能所有这些密钥和令牌、秘密等都是错误的。在创建我的应用程序时,我正确地复制了它们。另一件事是,我正在从我的开发人员那里尝试这个。我本地机器上的环境;我对 Windows 主机文件进行了编辑,以使我的应用程序从该特定 IP 地址运行并表现得像一个明确的 url。我也使用了这个,在创建 twitter 应用程序的过程中填写网站、域等字段的详细信息。

我使用休息客户端邮递员和所有这些来交叉检查 api 请求的事情。是的,它确实返回 215 代码错误的身份验证数据。有人告诉我,这可能是因为我电脑上的时钟与互联网时间不同步。所以我也这样做只是为了确保。依然没有。我真的很郁闷。请在这个问题上帮助我。我发现很难过去。 提前致谢,

【问题讨论】:

  • 您的代码格式不正确,因此很难确定,但您似乎在 进行 Search 调用之后调用了 AuthenticateWith。这是行不通的,如果你想作为给定用户搜索,你需要先调用 AuthenticateWith 。但是,如果您的消费者令牌正确,您正在进行的搜索调用应该仍然有效,只是您将只搜索没有关注者上下文的公共推文。你确定你的消费者密钥和秘密是正确的吗?前端/末端没有多余的空间?与 Twitter API 提供的内容相比,大小写没有变化?
  • 您还在使用当前版本的 TweetSharp 吗?不再支持原始/官方 Nuget 包,并且存在已知错误(尽管没有此症状 AFAIK)。 TweetSharpAlternative 或 TweetMoaSharp 都应该是最新的。
  • 嗨@Yort 非常感谢您的回复。是的,我的意图是搜索和显示公共推文[基于标签]。我仍然会移动那两条线并再次检查。此外,我会仔细检查我复制的那些密钥和秘密。我不知道 TweetSharp 有这个问题。是的,我确实使用 nuget 包管理器添加了它,所以我认为它只添加了最新的、最新的可能稳定版。你认为我应该和另外两个一起去吗?感觉好困。
  • 是的,我肯定会使用其他软件包之一。主要的一个经常在 Twitter 现在使用的长整数 id 上中断。
  • 嗨@Yort 是的;就像你说的那样互换了这两行。现在它给我的错误是 - JSON 整数 2778608971 对于 Int32 来说太大或太小。路径 'statuses[2].in_reply_to_user_id',第 1 行,位置 14552 在这一行 ----> 'var tweets_search = twitterService.Search(new SearchOptions { Q = "#RenewableEnergy", Resulttype = TwitterSearchResultType.Popular , 计数 = 30 });'这是你之前说的那个吗?

标签: .net rest twitter-oauth restful-authentication tweetsharp


【解决方案1】:

您似乎在调用 AuthenticateWith 之后调用 Search。这是行不通的,如果您想作为给定用户进行搜索,您需要先调用 AuthenticateWith。

您还在使用当前版本的 TweetSharp 吗?原始/官方 nugget 包不再受支持,并且存在已知错误,尤其是在长整数处理方面。

【讨论】:

  • 嗨@Yort 是的,它现在工作正常。安装了 TweetMoaSharp。并做了一些代码编辑。数据显示。但是我想做更多的增强;我不知道执行此操作的确切代码/包装信息。例如。 TwitterStatus.Author 未显示推文作者的姓名。我想在我的应用程序中展示这一点。你能告诉我,我应该怎么做。
  • 你试过status.User而不是status.Author吗?那有名字吗?如果您检查显示 Twitter 返回的原始 json 的状态的 Raw 属性,它的名称是否在 Author 或 user 下?
  • 嗨@Yort 我检查了。事实上,作者和用户都包含高音扬声器的名称。只是不明白为什么这会表现异常。还有一个特殊的事情:任何时候有其他语言而不是英语的推文,假设印地语、日语或斯里兰卡语,代码都会抛出异常——索引越界。这也很奇怪。 : 哦
猜你喜欢
  • 2013-01-20
  • 2013-06-16
  • 2013-11-28
  • 1970-01-01
  • 2023-03-15
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
相关资源
最近更新 更多