Twitter更新状态

编程入门 行业动态 更新时间:2024-10-23 17:37:58
本文介绍了Twitter更新状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在通过twitter4j将Twitter集成到Android.我可以成功阅读我发布的推文.

I am integrating Twitter to Android through twitter4j. I can successfully read tweets posted by me.

现在我正尝试从中发布推文,但我不能.我收到如下奇怪警告:

Now I am trying to posting tweet from it, but I can't. I am getting strange warning as below:

02-01 16:28:43.298: WARN/System.err(729): 401:Authentication credentials were missing or incorrect. 02-01 16:28:43.308: WARN/System.err(729): {"request":"\/1\/statuses\/update.json","error":"Read-only application cannot POST"} 02-01 16:28:43.308: WARN/System.err(729): TwitterException{exceptionCode=[15bb6564-00e54a7f], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.7-SNAPSHOT(build: fd76317d18a608269f0566f73bbb827420c4c77e)} 02-01 16:28:43.308: WARN/System.err(729): at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:309) 02-01 16:28:43.318: WARN/System.err(729): at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:72) 02-01 16:28:43.318: WARN/System.err(729): at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:103) 02-01 16:28:43.318: WARN/System.err(729): at twitter4j.Twitter.updateStatus(Twitter.java:501) 02-01 16:28:43.330: WARN/System.err(729): at com.T4J_OAuth.activities.Main$1.onClick(Main.java:69) 02-01 16:28:43.330: WARN/System.err(729): at android.view.View.performClick(View.java:2364) 02-01 16:28:43.330: WARN/System.err(729): at android.view.View.onTouchEvent(View.java:4179) 02-01 16:28:43.339: WARN/System.err(729): at android.widget.TextView.onTouchEvent(TextView.java:6541) 02-01 16:28:43.339: WARN/System.err(729): at android.view.View.dispatchTouchEvent(View.java:3709) 02-01 16:28:43.339: WARN/System.err(729): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 02-01 16:28:43.349: WARN/System.err(729): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 02-01 16:28:43.349: WARN/System.err(729): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 02-01 16:28:43.349: WARN/System.err(729): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 02-01 16:28:43.359: WARN/System.err(729): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 02-01 16:28:43.359: WARN/System.err(729): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 02-01 16:28:43.359: WARN/System.err(729): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 02-01 16:28:43.369: WARN/System.err(729): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 02-01 16:28:43.369: WARN/System.err(729): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 02-01 16:28:43.378: WARN/System.err(729): at android.os.Handler.dispatchMessage(Handler.java:99) 02-01 16:28:43.378: WARN/System.err(729): at android.os.Looper.loop(Looper.java:123) 02-01 16:28:43.378: WARN/System.err(729): at android.app.ActivityThread.main(ActivityThread.java:4363) 02-01 16:28:43.378: WARN/System.err(729): at java.lang.reflect.Method.invokeNative(Native Method) 02-01 16:28:43.389: WARN/System.err(729): at java.lang.reflect.Method.invoke(Method.java:521) 02-01 16:28:43.389: WARN/System.err(729): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 02-01 16:28:43.398: WARN/System.err(729): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 02-01 16:28:43.398: WARN/System.err(729): at dalvik.system.NativeStart.main(Native Method)

尽管我已将Twitter中的应用程序设置为可读写,但它说我不能按只读应用程序发布.

Though I have set my application in Twitter as read and write, it says I can't post by read only app.

推荐答案

在Twitter上发布推文与获取时间表是不同的.

Posting a tweet on twitter is different than getting the timeline.

将Twitter4J考虑在内,情况可能如下:

Taking Twitter4J into account the scenarios may be following:

它要求您拥有已授权的Twitter类的实例.

It requires you to have an instance of Twitter class which is authorised.

您需要执行以下操作以获取时间表:

You do following in order to get the timeline:

Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer(consumerKey, consumerSecret); RequestToken requestToken = twitter.getOAuthRequestToken(CALLBACKURL); ... ...

OAuth验证成功后,您将获得oauth_verifier变量,然后使用以下几行创建一个AccessToken:

After successful OAuth verification, you get the oauth_verifier variable, and then create an AccessToken with the following lines:

AccessToken accessToken = twitter.getOAuthAccessToken(requestToken,oauth_verifier); String token = accessToken.getToken(), secret = accessToken.getTokenSecret();

将上面的token和secret保存在某个地方,以后将用于生成AccessToken.

Save the above token and secret somewhere, it will be used in generating the AccessToken later.

现在,更新状态的代码:

Now, the code to update status:

AccessToken accessToken = new AccessToken(token,secret); Twitter twitter = new TwitterFactory().getOAuthAuthorizedInstance(consumerKey,consumerSecret,accessToken); Status status = twitter.updateStatus("My First Status Update"); statusId = (int)status.getId();

这会将消息My First Status Update更新到您的时间轴,并在statusId变量中获取此状态的ID.

This will update the message My First Status Update to your timeline and will get the ID of this status in the statusId variable.

有关如何使用OAuth通过Twitter实现登录并获取时间轴的第一条推文的工作示例,请单击这链接到我的博客文章.

For a working example of how to use OAuth to implement sign-in with twitter and get the first tweet of your timeline, click this link to my blog post.

我敢肯定,在对其稍加修改并在其中使用了上面的代码之后,您也可以将其转换为推文发布代码!

I am sure that after a slight modification into that and the use of above code in it, you can transform it into a tweet posting code too!

更多推荐

Twitter更新状态

本文发布于:2023-11-25 14:06:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1630060.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:状态   Twitter

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!