如何使用REST API 1.1从Android应用程序进行鸣叫 [英] How to tweet from an Android app using REST API 1.1
问题描述
在这里,我正在将一些Android应用中的文本发布到用户的Twitter帐户中,并且我具有ConsumerKey,Consumer密钥,AccessToken和AccessToken密钥.
Here I am posting some text from an Android app to a user's Twitter account, and I have ConsumerKey, Consumer secret key, AccessToken, and AccessToken secret key.
https://api.twitter.com/1.1/statuses/update.json
通过使用简单的HTTP客户端请求,我想在Twitter用户帐户上发布数据.我该怎么办?
By using simple a HTTP client request, I want to post data on a Twitter user account. How can I do that?
我尝试过类似的事情
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://api.twitter.com/1/statuses/update.json");
// HttpPost httppost = new HttpPost("https://graph.facebook.com/" + profile_ID + "/feed");
System.out.println("httppost " + httppost);
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("access_token", access_token_value));
nameValuePairs.add(new BasicNameValuePair("message", compose.getText().toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
System.out.println("response "+response.toString());
}
catch (ClientProtocolException e) {
// TODO Auto-generated catch block
}
catch (IOException e) {
// TODO Auto-generated catch block
}
但是参数在我的代码中是错误的,紧随其后,但我没有明白,对此有什么合适的解决方案?
But parameters are wrong in my code, following this, but I didn't get it so what is some suitable solution for this?
推荐答案
如果您想在文本框中发布您输入的内容,我可能会在这里为您提供帮助.1.您必须在gradle文件中包含twitter4j库,如下所示:
If you want to post what you have entered in text box, I may help you out here. 1. You must have included the twitter4j library in gradle file as follows:
compile group: 'org.twitter4j', name: 'twitter4j-core', version: '4.0.1'
2.在您的代码中包含以下代码段:
2. Include following code snippet in your code:
public String sTweet;
EditText et_TweetText;
public static String consumerkey = "xxxxxxxxxxxxxxxxx";
public static String consumersecret = "xxxxxxxxxxxxxxxxx";
public static String accesstoken="xxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxx";
public static String accesstokensecret="xxxxxxxxxxxxxxxxx";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
et_TweetText = (EditText) view.findViewById(R.id.et_TweetText);
bt_tweetIt = (Button) view.findViewById(R.id.bt_tweetIt);
bt_tweetIt.setOnClickListener(this);
}
@Override
public void onClick(View v) {
sTweet = et_TweetText.getText().toString();
Log.i(TAGTweet, "onClick- sTweet: " + sTweet);
if(CheckConnectivity()!=0){
Log.i(TAGTweet, "Internet Connection ON: ");
new UseTweeter().execute();
}
else {
Log.i(TAGTweet, "Internet Connection OFF: ");
ShowNoInternetConnectionAlert();
}
}
public class UseTweeter extends AsyncTask<String,String,String>{
@Override
protected String doInBackground(String... params) {
TweetThisMessage();
return null;
}
}
public void TweetThisMessage(){
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthAccessToken(accesstoken);
builder.setOAuthAccessTokenSecret(accesstokensecret);
builder.setOAuthConsumerKey(consumerkey);
builder.setOAuthConsumerSecret(consumersecret);
OAuthAuthorization auth = new OAuthAuthorization(builder.build());
Twitter twitter = new TwitterFactory().getInstance(auth);
try {
Log.i(TAGTweet, "sTweet in TweetThisMessage(): " + sTweet);
twitter.updateStatus(sTweet);
} catch (TwitterException e) {
e.printStackTrace();
return;
}
}
希望有帮助.
这篇关于如何使用REST API 1.1从Android应用程序进行鸣叫的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!