如何使用REST API 1.1从Android应用程序进行鸣叫 [英] How to tweet from an Android app using REST API 1.1

查看:44
本文介绍了如何使用REST API 1.1从Android应用程序进行鸣叫的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这里,我正在将一些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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆