这里我将一些Android应用程序的文本发布到用户的Twitter帐户,我有ConsumerKey,Consumer secret密钥,AccessToken和AccessToken密钥。
https://api.twitter.com/1.1/statuses/update.json
通过使用简单的HTTP客户端请求,我想在Twitter用户帐户上发布数据。我怎么能这样做?
我试过像
这样的东西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
}
但是我的代码following this中的参数是错误的,但我没有得到它,那么对于这个有什么合适的解决方案呢?
答案 0 :(得分:0)
由于您要求如何使用REST API 1.1从Android应用程序发送推文,我建议您使用Twitter 4j库,以便在您的Android应用程序中集成Twitter。 / p>
此库封装了身份验证功能(通过OAuth库)和其他重要功能。以下是它的一些功能:
Twitter4J的特色是:
您需要通过此库调用简单函数才能使用有关Twitter的特定功能。这是一个演示此库使用情况的链接: http://twitter4j.org/en/code-examples.html
您可以在http://twitter4j.org/链接下载此库。
以下是使用库https://github.com/itog/Twitter4j-android-Sample实现的示例。
答案 1 :(得分:0)
如果您想在文本框中发布您输入的内容,我可以在此帮助您。 1.您必须将twitter4j库包含在gradle文件中,如下所示:
compile group: 'org.twitter4j', name: 'twitter4j-core', version: '4.0.1'
2。在您的代码中包含以下代码段:
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;
}
}
希望它有所帮助。