2010-03-12 7 views
7

J'utilise l'API Twitter (via TweetSharp) et je me demandais s'il était possible d'actualiser automatiquement la page à partir de l'API afin que tous les utilisateurs voient la mise à jour? Si oui, est-il également possible d'aller plus loin en ayant seulement une mise à jour partielle de la page afin que seule la modification pertinente soit mise à jour au lieu de la page entière?Twitter actualiser la page via l'API

Merci pour toute aide

+0

affichent des informations twitter vous dans une page asp.net? – Foole

+0

Non, j'utilise simplement l'application (asp.net et application de bureau) pour mettre à jour la page Twitter. – XSL

+0

Je suis la plupart du temps à écrire une application Twitter avec TweetSharp, donc je peux probablement vous aider. Voulez-vous publier des tweets sur Twitter pour un groupe d'utilisateurs ou lire des tweets pour un groupe d'utilisateurs, puis mettre à jour la page si le dernier tweet change? Ou autre chose? – amelvin

Répondre

1

Je pense que je comprends votre question, que vous voulez afficher un groupe d'utilisateurs et leur dernier tweet - mais vérifiez toujours si leur dernier tweet a changé et mettre à jour l'écran lorsque l'utilisateur publie un tweet?

Si oui, la réponse est que vous devez appeler le twitterapi asynchrone de temps en temps et déroulez le dernier statut (tweet) pour chaque utilisateur - et s'il s'agit d'un nouveau, utilisez ajax pour mettre à jour la partie de l'écran avec l'ancien statut (tweet) dedans.

En TweetSharp si vous avez une liste d'amis, vous pouvez tirer dans leur dernier tweet avec quelque chose comme:

string profileImageUrl = String.Empty; 
    string name = String.Empty; 
    string statusText = String.Empty; 
    string createdAt = String.Empty; 
    string screenName = String.Empty; 

    foreach (TwitterUser friend in friends) 
    { 
     try 
     { 
      profileImageUrl = String.IsNullOrEmpty(friend.ProfileImageUrl) ? "" : friend.ProfileImageUrl; 
      name = String.IsNullOrEmpty(friend.Name) ? "" : friend.Name; 
      statusText = (friend.Status == null || friend.Status.Text.Length == 0) ? "unknown" : friend.Status.Text; //stops nullreferenceexception on instance 
      createdAt = String.IsNullOrEmpty(friend.CreatedDate.ToString()) ? "" : friend.CreatedDate.ToString(); 
      screenName = String.IsNullOrEmpty(friend.ScreenName) ? "" : friend.ScreenName; 
     } 
     catch (NullReferenceException) 
     { 
      profileImageUrl = ""; 
      name = "unknown"; 
      statusText = "unknown"; 
      createdAt = ""; 
      screenName = "unknown"; 

Vous pouvez l'afficher sur l'écran initialement.

Ensuite, utilisez jquery (ou javascript) pour périodiquement hit a web service that reads the twitter api puis utilisez les données renvoyées pour mettre à jour le dernier tweet s'il a été modifié. Faites-moi savoir si j'ai la mauvaise extrémité du bâton.

EDIT:

Un exemple d'utilisation Tweetsharp affichant un nouveau tweet à Twitter est:

var query = FluentTwitter.CreateRequest().AuthenticateAs(username,password).Statuses().Update("Posting status on StackOverflow").AsJson(); 
+0

Salut, Merci pour l'aide. Je ne peux pas essayer le code atm, mais votre code changerait-il la page Twitter elle-même? C'est ce que je vise à faire. Ainsi, si un utilisateur met à jour quelque chose dans mon application, il peut alors voir automatiquement la mise à jour de la page Twitter.com via une publication partielle – XSL

+0

@superexsl J'ai ajouté un exemple en postant une mise à jour sur Twitter en utilisant Tweetsharp – amelvin

0

Je n'utiliser cette dll, mais je suis en train d'écrire un, et l'API Twitter vous attend d'appeler à nouveau - il n'y a pas de rafraîchissement que je sache. Si cette dll vous permet d'interroger depuis une date alors c'est possilbe et serait probablement un paramètre à l'appel. J'espère que cela aide un peu

+0

Salut, cela ne me dérange pas de sauter l'API pour ce bit et de simplement créer mon en-tête POST. Quelle méthode dois-je essayer et appeler en utilisant mon en-tête personnalisé? Merci pour l'aide – XSL

0

Si vous utilisez ASP .NET, vous pouvez envisager d'utiliser AJAX avec le contrôle UpdatePanel. Ce serait probablement le moyen le plus simple d'obtenir ce dont vous avez besoin avec ASP .NET

+0

Salut, Je ne comprends pas comment un UpdatePanel est utilisé pour mettre à jour la page de Twitter? – XSL

+0

Je pense que j'ai mal compris ce que tu faisais. Utilisez-vous une application de bureau pour soumettre à Twitter mais ne pas en lire? Vous n'utilisez pas l'API Twitter pour afficher des informations sur une page ASP.NET que vous avez écrite? Si vous prévoyez d'actualiser une fenêtre de navigateur distincte de votre application de bureau à l'intérieur de votre application de bureau, vous aurez besoin d'API dans le navigateur et non dans Twitter. – Justin

+0

Bonjour, je crée une application de bureau et une page ASP.NET. Cela ne me dérange pas si cela ne fonctionne pas pour l'application de bureau. Je ne veux pas mettre à jour ma page, je veux mettre à jour la page Twitter elle-même.Comme lorsque vous recevez un nouveau tweet, il affiche automatiquement le nouveau tweet sans actualiser la page. Je me demande s'il y a un appel AJAX que je peux faire pour que ma demande le fasse. (par exemple quand je mets à jour l'image de profil, cela devrait changer sans actualisation sur la page Twitter actuelle) merci – XSL

Questions connexes