J'y suis allé depuis le week-end et je suis dans une impasse. Je suis assez novice en programmation et je suspecte que je suis dans la tête parce que j'ai lu tous les liens sous «Questions similaires» et que ça ne s'applique pas ou que je ne comprends plus. J'utilise l'API Twitter4j et j'ai travaillé à partir de l'exemple de code n °Android, Twitter4j, REST 1.1 - Comment terminer le processus OAuth?
7 sur le site Web twitter4j sur le support OAuth au http://twitter4j.org/en/code-examples.html. En tant que projet de développement de compétences, je veux créer une application de fans de célébrités Android qui téléchargera la chronologie du compte public de la célébrité. L'objectif est d'exécuter un téléchargement chronologique de tous les tweets. Je ne veux pas que l'utilisateur se connecte à Twitter avec cette application ou poster des tweets. L'application télécharge simplement une chronologie en arrière-plan et affiche les tweets, probablement dans une vue de liste.
Mon code n'exécute pas la ligne suivante. Il semble juste rester là à attendre que quelque chose se produise. RequestToken requestToken = twitter.getOAuthRequestToken();
J'ai les permissions Internet dans le manifeste. À ce stade, je suis tellement confus, je ne sais même pas si j'ai enregistré mon application correctement. J'ai les quatre clés (consommateur, secret du consommateur, accès et secret d'accès).
Réglages
-Site: fait quelque chose
-Demande Type: Lecture seule
URL -Callback: laissé vide
-I n'a pas opté pour " Connectez-vous avec Twitter. "
OAuth outil
-Demande Type: GET
URI -Demande: https://api.twitter.com/1/ (probablement faux)
Voici mon code:
public class TwitterActivity extends Activity
{
Button mButtonTweets;
String JSONString = null;
TextView JSONContent;
class GetTwitterTimeline extends AsyncTask<Void, String, String>
{
@Override
protected String doInBackground(Void... params)
{
try
{
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("")
.setOAuthConsumerSecret("")
.setOAuthAccessToken("")
.setOAuthAccessTokenSecret("");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
try
{
RequestToken requestToken = twitter.getOAuthRequestToken();
AccessToken accessToken = null;
while (accessToken == null)
{
onProgressUpdate(requestToken.getAuthenticationURL());
try
{
accessToken = twitter.getOAuthAccessToken();
}//try
catch(TwitterException te)
{
if (te.getStatusCode() == 401)
{
onProgressUpdate("Unable to get the access token");
}//if
else
{
te.printStackTrace();
}//else
}//catch
}//while
onProgressUpdate("Got Access Token");
onProgressUpdate("Access Token: " + accessToken.getToken());
onProgressUpdate("Access Token Secret: " + accessToken.getTokenSecret());
}//try
catch (IllegalStateException ie)
{
if(!twitter.getAuthorization().isEnabled())
{
onProgressUpdate("OAuth consumer key/secret is not set.");
}//if
}//catch
}//try
catch (TwitterException te)
{
te.printStackTrace();
onProgressUpdate("Failed to get timeline");
}//catch
String JSONString = "JSON content will go here";
return JSONString;
}//doInBackground
protected void onProgressUpdate(String logEntry)
{
Log.d("twitter4j", logEntry);
}
@Override
protected void onPostExecute(String jsonString)
{
JSONString = jsonString;
}
}//end inner class
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_twitter);
new GetTwitterTimeline().execute();
JSONContent = (TextView) findViewById(R.id.textview_tweets);
mButtonTweets = (Button) findViewById(R.id.button_tweets);
mButtonTweets.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
JSONContent.setText(JSONString);
}
});
}
}
fida, j'apprécie les commentaires que je l'ai essayé la lecture dev.twitter.com et il me embrouille un peu plus j'ai aussi essayé la lecture Stack Overflow, d'autres sites que Google renvoie, et les API twitter4j et Android.Je deviens juste plus confus.Quand vous regardez mon code, voyez-vous des problèmes évidents? –
@JamesRogers: AFAIK votre code est pour la connexion au compte Twitter et faire des choses différentes Pas pour tirer des messages publics.La lecture des messages publics via l'analyse syntaxique JSON était possible dans l'ancienne API.Pas la dernière API.Twitter a fermé la porte.:( Vous devez ajouter l'authentification de connexion pour les utilisateurs afin de pouvoir voir les articles et autres travaux en cliquant sur le lien suivant: https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline – fida1989