Welche API müsste ich verwenden, um die letzten Tweets eines bestimmten Benutzers mit einem öffentlichen Konto zu erhalten?Twitter API, um aktuelle Tweets eines bestimmten Benutzers zu erhalten
Antwort
Um Tweets von einem bestimmten Benutzer zu erhalten, möchten Sie die GET statuses/user_timeline API-Methode verwenden.
@AdamSack Diese Methode wurde nicht veraltet. – abraham
Fügen Sie einfach '? Bildschirmname = USERNAME' am Ende des Endpunkts hinzu. –
neuesten 5 Tweets mit PHP-Code.
$tweets_result=file_get_contents("https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=username&count=5");
$data=json_decode($tweets_result);
print_r($data);
Hinweis: Dies funktioniert aufgrund von OAuth und der API 1.1 nicht mehr. – Jimbo
Ab 7. Mai 2013 wird Twitters bereits veraltet v1.0 im Ruhestand ist und v1.1 ist die einzige Methode der Zugriff auf das API, authentifizierte Anforderungen über OAuth verwenden.
Das heißt, Sie nicht der Lage sein, PHP zu verwenden file_get_contents()
ganz auf seine eigene diese Art der Sache zu packen - Sie benötigen ein Skript zu schreiben, die OAuth und Twitters v1.1 API verwendet.
I recently wrote a Stack Overflow answer, um Neulingen an der twitter v1.1 API zu helfen, und ich schrieb eine Klasse, um Ihnen dies zu erleichtern.
Sie müssen ein Entwicklerkonto erstellen, sich eine Reihe von Entwicklerschlüsseln zur Verwendung in Ihrer Anwendung besorgen und authentifizierte Anforderungen mithilfe von OAuth erstellen. Wenn Sie den obigen Beitrag lesen, sehen Sie, dass ich eine simple class erstellt habe, um Ihnen dies zu ermöglichen.
TLDR: Kann nicht v1.0 nicht mehr verwenden möchten, verwenden 1.1 und diese Klasse der Einfachheit halber: https://github.com/J7mbo/twitter-api-php
Wir können die twitter Ruhe api verwenden, um die Tweets von bestimmten Benutzer zu erhalten. Sie können
<RelativeLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:id="@+id/rl_menu"
android:background="@color/colorPrimaryDark">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Twitter Tweets"
android:textColor="#ffffff"
android:textSize="15dp"
android:layout_centerInParent="true"/>
</RelativeLayout>
<ListView
android:layout_width="match_parent"
android:id="@+id/lv_list"
android:layout_height="match_parent"
android:layout_below="@+id/rl_menu"></ListView>
</RelativeLayout>
MainActivity.java
package com.gettweets;
import android.app.Activity;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.google.gson.Gson;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.*;
import java.net.URLEncoder;
import java.util.ArrayList;
/**
* Demonstrates how to use a twitter application keys to access a user's timeline
*/
public class MainActivity extends Activity {
final static String ScreenName = "Deepshikhapuri";
final static String LOG_TAG = "rnc";
ListView lv_list;
ArrayList<String> al_text = new ArrayList<>();
Adapter obj_adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_list = (ListView)findViewById(R.id.lv_list);
downloadTweets();
}
// download twitter timeline after first checking to see if there is a network connection
public void downloadTweets() {
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
new DownloadTwitterTask().execute(ScreenName);
} else {
Toast.makeText(getApplicationContext(),"Please check your internet connection",Toast.LENGTH_SHORT).show();
}
}
// Uses an AsyncTask to download a Twitter user's timeline
private class DownloadTwitterTask extends AsyncTask<String, Void, String> {
final static String CONSUMER_KEY = "nW88XLuFSI9DEfHOX2tpleHbR";
final static String CONSUMER_SECRET = "hCg3QClZ1iLR13D3IeMvebESKmakIelp4vwFUICuj6HAfNNCer";
final static String TwitterTokenURL = "https://api.twitter.com/oauth2/token";
final static String TwitterStreamURL = "https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=";
final ProgressDialog dialog = new ProgressDialog(MainActivity.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog.setTitle("Loading");
dialog.setMessage("Please wait");
dialog.show();
}
@Override
protected String doInBackground(String... screenNames) {
String result = null;
if (screenNames.length > 0) {
result = getTwitterStream(screenNames[0]);
}
return result;
}
// onPostExecute convert the JSON results into a Twitter object (which is an Array list of tweets
@Override
protected void onPostExecute(String result) {
Log.e("result",result);
dialog.dismiss();
try {
JSONArray jsonArray_data = new JSONArray(result);
al_text.clear();
for (int i=0; i<jsonArray_data.length();i++){
JSONObject jsonObject = jsonArray_data.getJSONObject(i);
al_text.add(jsonObject.getString("text"));
}
}catch (Exception e){
e.printStackTrace();
}
// send the tweets to the adapter for rendering
obj_adapter= new Adapter(getApplicationContext(), al_text);
lv_list.setAdapter(obj_adapter);
}
// convert a JSON authentication object into an Authenticated object
private Authenticated jsonToAuthenticated(String rawAuthorization) {
Authenticated auth = null;
if (rawAuthorization != null && rawAuthorization.length() > 0) {
try {
Gson gson = new Gson();
auth = gson.fromJson(rawAuthorization, Authenticated.class);
} catch (IllegalStateException ex) {
// just eat the exception
}
}
return auth;
}
private String getResponseBody(HttpRequestBase request) {
StringBuilder sb = new StringBuilder();
try {
DefaultHttpClient httpClient = new DefaultHttpClient(new BasicHttpParams());
HttpResponse response = httpClient.execute(request);
int statusCode = response.getStatusLine().getStatusCode();
String reason = response.getStatusLine().getReasonPhrase();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream inputStream = entity.getContent();
BufferedReader bReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
String line = null;
while ((line = bReader.readLine()) != null) {
sb.append(line);
}
} else {
sb.append(reason);
}
} catch (UnsupportedEncodingException ex) {
} catch (ClientProtocolException ex1) {
} catch (IOException ex2) {
}
return sb.toString();
}
private String getTwitterStream(String screenName) {
String results = null;
// Step 1: Encode consumer key and secret
try {
// URL encode the consumer key and secret
String urlApiKey = URLEncoder.encode(CONSUMER_KEY, "UTF-8");
String urlApiSecret = URLEncoder.encode(CONSUMER_SECRET, "UTF-8");
// Concatenate the encoded consumer key, a colon character, and the
// encoded consumer secret
String combined = urlApiKey + ":" + urlApiSecret;
// Base64 encode the string
String base64Encoded = Base64.encodeToString(combined.getBytes(), Base64.NO_WRAP);
// Step 2: Obtain a bearer token
HttpPost httpPost = new HttpPost(TwitterTokenURL);
httpPost.setHeader("Authorization", "Basic " + base64Encoded);
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
httpPost.setEntity(new StringEntity("grant_type=client_credentials"));
String rawAuthorization = getResponseBody(httpPost);
Authenticated auth = jsonToAuthenticated(rawAuthorization);
// Applications should verify that the value associated with the
// token_type key of the returned object is bearer
if (auth != null && auth.token_type.equals("bearer")) {
// Step 3: Authenticate API requests with bearer token
HttpGet httpGet = new HttpGet(TwitterStreamURL + screenName);
// construct a normal HTTPS request and include an Authorization
// header with the value of Bearer <>
httpGet.setHeader("Authorization", "Bearer " + auth.access_token);
httpGet.setHeader("Content-Type", "application/json");
// update the results with the body of the response
results = getResponseBody(httpGet);
}
} catch (UnsupportedEncodingException ex) {
} catch (IllegalStateException ex1) {
}
return results;
}
}
}
Authenticated.java Paket com.gettweets die Quelle Display Tweets of a particular user in an Android
activity_main.xml herunterladen;
public class Authenticated {
String token_type;
String access_token;
}
adapter_layout.xml
<RelativeLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_text"
android:textSize="18dp"
android:layout_margin="10dp"
android:textColor="#000000"/>
</RelativeLayout>
Adapter.java
package com.gettweets;
import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
public class Adapter extends ArrayAdapter<String> {
Context context;
ViewHolder viewHolder;
ArrayList<String> al_newslist=new ArrayList<>();
public Adapter(Context context, ArrayList<String> al_newslist) {
super(context, R.layout.adapter_layout, al_newslist);
this.al_newslist=al_newslist;
this.context=context;
}
@Override
public int getCount() {
Log.e("ADAPTER LIST SIZE",al_newslist.size()+"");
return al_newslist.size();
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public int getViewTypeCount() {
if (al_newslist.size() > 0) {
return al_newslist.size();
} else {
return 1;
}
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(getContext()).inflate(R.layout.adapter_layout, parent, false);
viewHolder.tv_name = (TextView) convertView.findViewById(R.id.tv_text);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.tv_name.setText(al_newslist.get(position));
return convertView;
}
private static class ViewHolder {
TextView tv_name;
}
}
- 1. Alle Tweets eines bestimmten Twitter-Accounts abrufen?
- 2. Twitter API - Tweets mit spezifischer ID erhalten
- 3. Tweetsharp: Abrufen der Tweets-Liste eines bestimmten Benutzers
- 4. Twitter API - Alle Tweets mit einem bestimmten Hashtag anzeigen?
- 5. Die gesamten Tweets eines Benutzers scratzen
- 6. Twitter-API einrichten, die letzten paar Tweets erhalten
- 7. Analysieren Twitter Tweets usw.
- 8. Wie Crawler Retweets eines bestimmten Benutzers?
- 9. Asp.Net Web API, um gesails eines bestimmten Artikels zu erhalten
- 10. Loading Tweets mit Javascript und Twitter API
- 11. Twitter Datenextraktion - Json Dump für Tweets aus der Zeitleiste eines Benutzers
- 12. Abrufen der Titelliste eines bestimmten Benutzers mit soundcloud API
- 13. Twitter4j Wie bekomme ich twitter Tweets von Tweets Tweets
- 14. Erhalten Sie alle Freunde eines bestimmten Benutzers auf Twitter mit Tweepy
- 15. Twitter Fabric API: Sortierung Tweets basierend auf Standort (am nächsten)
- 16. Aktuelle Benutzerinfo von Twitter API abrufen
- 17. Wie Bild-URL von Tweets mit dem Twitter-API
- 18. Get Tweets mit Bildern mit Hilfe von Twitter Suche api
- 19. Twitter-Wettbewerb ~ Speichern von Tweets (PHP & MySQL)
- 20. NodeJS Twitter api Suche mehr als 100 Tweets
- 21. Authentifizieren eines bestimmten Benutzers zu einem bestimmten Client mit IdentityServer
- 22. Sammeln von Tweets von Benutzern mithilfe der twitter API und status/user_timeline
- 23. Streaming mehrerer Tweets - von mehreren Benutzern? - Twitter API
- 24. Twitter API mit Javascript
- 25. Erhalten von Echtzeit-Twitter-Suchergebnissen mit der Streaming-API
- 26. Wie speichert man Twitter-Such-API-Tweets und retweet sie?
- 27. Steam API Dampfniveau des Benutzers erhalten?
- 28. Wie MEDIA_URL von Tweets zu erhalten, die Tweepy API
- 29. Twitter API: Suche nach Tweets, die eine Place_ID enthalten?
- 30. Twitter API: Fetch Tweets die letzten 4 Stunden withing
Welche Sprache verwenden Sie? – Tim
Es stellt sich heraus, dass ich einen direkten http-Aufruf machen kann, um diese Informationen zu erhalten. http://api.twitter.com/1/statuses/user_timeline.json?screen_name=noradio&count=5 – user330973
Hier ist ein Link, wo Sie einen Code finden, um Tweets mit der twitter 1.1 API http: // stackoverflow auszuwählen.com/questions/12916539/simple-php-example-retrieving-benutzer-timeline-with-twitter-api-version-1-1 – lackovic10