首页 > 解决方案 > 使用 scribejava 使用 JSON 正文发出 Twitter OAuth1 PUT 请求

问题描述

我正在尝试调用twitter v2 端点来隐藏使用 OAuth1 和ScribeJava的推文

这是我尝试过的

val service = ServiceBuilder(apiKey)
        .apiSecret(apiSecret)
        .build(TwitterApi.instance())

    val url = "https://api.twitter.com/2/tweets/${tweetId}/hidden"

    val oauth1 = OAuth1AccessToken(token,secret)
    val request = OAuthRequest(Verb.PUT, url)
    request.setPayload("{ \"hidden\": true }")

    service.signRequest(oauth1, request)
    val response = service.execute(request)

当我尝试400 Bad Request恢复时,正确的方法是什么?

标签: javakotlintwitterscribe

解决方案


您的问题的原因可能与您试图隐藏一条您没有能力这样做的推文有关。请注意推文必须遵守的限制才能被隐藏。Twitter 开发人员文档Step three: Find a Tweet ID to hide中的部分说明了这一点:

隐藏回复端点可以代表授权用户隐藏或取消隐藏回复。由于我们在此示例中使用与您的用户配置文件相关的访问令牌,因此您将能够隐藏参与由您发起的对话的用户的回复。同样,如果您使用的访问令牌属于另一个授权您的应用程序的用户,您将能够审核对该帐户发起的任何对话的回复。

请朋友回复推文(让他们知道您正在测试隐藏回复)或从测试帐户回复您的任何推文。单击该回复,然后复制其 URL 的数字部分。这将是我们将隐藏的推文 ID。


推荐阅读