我正在尝试制作一个应用程序,用户可以在其中使用twitter4j编写文本并发送tweet。当我手动编写文本作为updatestatus()方法的参数时,我的应用程序运行得很好。但是,当我尝试从textview对象获取文本时,我不能发布任何内容。我要找回这个错误。
system.err:403:请求已被理解,但已被拒绝。附带的错误消息将解释原因。由于更新限制而拒绝请求时使用此代码
不过,我使用的是最新版本的twitter4j。有人能帮忙吗?记住,我对这一切都很陌生。
这是我目前的代码。原谅我这是我的第一步。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText textForPost = findViewById(R.id.textForPost);
String message = textForPost.getText().toString();
Button buttonPost = findViewById(R.id.buttonPost);
buttonPost.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PostSomething newPost = new PostSomething(message);
newPost.execute();
}
});
}
}
public class PostSomething extends AsyncTask<String, String, String> {
private static String postContent;
private static final String TAG = "Twitter_API";
public PostSomething(String content) {
postContent = content;
}
@Override
protected String doInBackground(String... strings) {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("myKey")
.setOAuthConsumerSecret("mySecretKey")
.setOAuthAccessToken("myAccessToken")
.setOAuthAccessTokenSecret("mySecretAccessToken");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
try {
twitter.updateStatus(postContent);
Log.d(TAG, "Post is up.");
} catch (TwitterException e) {
e.printStackTrace();
Log.e(TAG, "Something went wrong");
}
return "RESULT";
}
}
public class AsyncTaskExecutor implements Executor {
Queue<AsyncTask> queue;
@Override
public void execute(Runnable command) {
while(true){
AsyncTask currentTask = queue.peek();
currentTask.executeOnExecutor(this);
currentTask.notify();
}
}
}
暂无答案!
目前还没有任何答案,快来回答吧!