用twitter4j发布tweet

vmdwslir  于 2021-06-27  发布在  Java
关注(0)|答案(3)|浏览(492)

**赏金5天后到期。回答这个问题可以获得+500声望奖励。卡恩修道院çada正在寻找一个可靠的答案。

我有一个twiiter应用程序:
//不记名代币
//api密钥
//api密钥密钥
//访问令牌:
//访问令牌密钥:
以及 Read, Write, and Direct Messages 权限
我使用configurationbuilder类在java中以编程方式配置twitter4j:

ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
            .setOAuthConsumerKey("IX9qalH5azhSk61ZoFMiL83Jg")   // API key
            .setOAuthConsumerSecret("tidoT2GgVZE3B3txDb64tuinlv0wZHbKesX5bNIcjPWpxmcYcs") // API key secret
            .setOAuthAccessToken("1345093646195010258-goY3W4oyqSltGFSUNPwJy8pSjSmfI5") // Access token:
            .setOAuthAccessTokenSecret("ijkpYB8sacVcBdvKHOnh95Y3QRITzD3c4Uq8nUUMLTN8O"); //Access token secret:
    TwitterFactory tf = new TwitterFactory(cb.build());
    return tf.getInstance();

但我在尝试发布时有一个错误:

401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
{"request":"\/1.1\/media\/upload.json","error":"Read-only application cannot POST."}

我从ubuntu服务器发送tweet,已经同步了(https://vitux.com/how-to-sync-system-time-with-internet-time-servers-on-ubuntu-20-04/)

root@localhost:~# timedatectl
               Local time: Wed 2021-01-06 08:03:11 UTC
           Universal time: Wed 2021-01-06 08:03:11 UTC
                 RTC time: Wed 2021-01-06 08:03:12    
                Time zone: Etc/UTC (UTC, +0000)       
System clock synchronized: yes                        
              NTP service: active                     
          RTC in local TZ: no
wvyml7n5

wvyml7n51#

您的代码看起来不错,权限是您在为其配置应用程序的问题中指出的适当权限 Read, Write, and Direct Messages ,并且您正在使用正确的oauth机制发布tweet。
尽管如此,您还是获得了指示的错误,表明应用程序没有发布tweet的权限。
请尝试重置您的密钥,并使用获得的新凭据发出请求,也许这有助于解决问题。请参阅有关如何重新生成api密钥和令牌的相关文档。
再看看这个问题,我想会有帮助的。
如果它不起作用,并且问题中指出的权限是实际配置的,我的建议是你从头开始创建一个新的应用程序,并尝试用它发布你的tweet。

8i9zcol2

8i9zcol22#

从下面的回答来看,我认为您正在使用这个api。

401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
{"request":"\/1.1\/media\/upload.json","error":"Read-only application cannot POST."}

由于存在如下错误消息,您需要创建一个具有读写权限的twitter应用程序。有关错误消息的详细信息,请检查此项。
只读应用程序无法发布。
这是关于应用程序权限的官方开发者文档。更改此项:

对此:

我希望,这已经足够清楚了。

e3bfsja2

e3bfsja23#

这里有一个链接
从下面的回答来看,我认为您正在使用这个api。
401:身份验证凭据(https://dev.twitter.com/pages/auth)丢失或不正确。确保已设置有效的使用者密钥/密码、访问令牌/密码,并且系统时钟同步。{”request“:/1.1/media/upload.json”,“error”:“只读应用程序无法发布。”}由于出现如下错误消息,您需要创建一个具有读写权限的twitter应用程序。有关错误消息的详细信息,请检查此项。
只读应用程序无法发布。
这是关于应用程序权限的官方开发者文档。将此:只读应用程序更改为此:读写应用程序
我希望,这已经足够清楚了。

相关问题