Wie bekomme ich von Twitter einen Rückruf zum Twittern?

9

Der Tweet Button ist normalerweise:

%Vor%

und hier kann ich einen Rückruf erhalten, wenn der Benutzer twittert:

%Vor%

Was ich nicht verstehe: Wie gibt mir Twitter diesen Rückruf? Der Tweet wird in einem anderen Fenster und von einer anderen Domäne ausgeführt. Wie ist das möglich?

    
CamelCamelCamel 26.10.2011, 05:59
quelle

3 Antworten

3

Was ich daraus entnehmen kann, ist Twitters eigene Implementierung von Web Intents , die eine Web-API ist, die lose auf Androids Intents-Funktionalität basiert. Es sieht so aus, als ob Twitter eine JavaScript-Implementierung von Web Intents verwendet (möglicherweise ähnlich wie diese ).

In diesem Szenario registriert Twitter JavaScript ein intent mit dem Browser. Das intent teilen Sie eine URL. Wenn der Benutzer auf den Tweet-Button klickt, wird die Aktivität intent gestartet und ein neues Popup-Fenster wird angezeigt.

Der Benutzer klickt auf den Tweet-Button aus dem Popup-Fenster und der Browser sendet die Ereignisdaten an einen Rückruf zurück, der beim Starten der Aktivität angegeben wurde. Der Callback wird in widget.js angegeben und Sie verknüpfen dieses Ereignis mit der Methode twttr.events.bind .

Es gibt ein wirklich gutes Beispiel dafür, wie dies auf der JavaScript github Implementierung von WebIntents funktioniert.

  

Verwendung

     

Heute verwenden

     

Derzeit wird diese API von keinem Browser nativ unterstützt. Um dieses System zu benutzen   Einfach den folgenden Code in Ihre Site einfügen:

%Vor%      

Wenn Browser dies nativ implementieren, verschiebt der Shim alle   seine Funktionalität auf die native Schnittstelle.

     

Erklärung

     

So registrieren Sie Ihre Dienstanwendung, um mit dem Image umgehen zu können   teilen Sie einfach ein intent-Tag.

%Vor%      

Dadurch wird die Fähigkeit der aktuellen Seite zum Teilen von Bildern registriert.

     

Aufruf

     

Um eine Client-Anwendung zu erstellen, die die Share-Funktionalität nutzen kann,   ist so einfach wie mit dem folgenden Code:

%Vor%      

Service

     

Wenn ein Dienst über startActivity aufgerufen wird, wird das Objekt "intent" aktiviert   Das Fenster wird mit den vom Client bereitgestellten Daten gefüllt.

%Vor%      

Das ist es.

     

Um Daten an den Client zu senden, der sie aufgerufen hat, ist es so einfach wie   Aufruf von postResult () über die Absicht.

%Vor%

Das Beispiel ist offensichtlich etwas anders als die Twitter-Implementierung, aber der allgemeine Prozess ist der gleiche.

Hier sind einige andere Referenzen für die WebIntents-API:

codingbadger 08.11.2011, 18:26
quelle
1

Mit JavaScript geöffnete Fenster (z. B. window.open ) erhalten einen Verweis auf das Fenster, in dem sie erstellt wurden, in window.opener , mit dem sie mit dem übergeordneten Element "zurücksprechen" können.

    
duskwuff 26.10.2011 06:20
quelle
-2

Ich bin mir nicht genau sicher, was Sie hier tun, aber domainübergreifende Javascript-APIs werden mit jsonp: Cross-Origin Resource Sharing durchgeführt. Ссылка

Bearbeiten 1: JSONP ist ein Ansatz für den Zugriff auf domänenübergreifende Dienste. Ein einfacher Ansatz für dieses Problem besteht darin, Round-Robin-Polling zu verwenden. Polling wird leider nicht skaliert, wenn Sie viele Kunden haben. Eine dauerhafte Verbindung über tcp-Sockets aufrecht zu erhalten und den Server PUSH neue Nachrichten an die abonnierten Clients zu senden, ist eine bessere Alternative zum klassischen Polling.

Obwohl ich WebSockets nicht verwendet habe, kann der Server die Client-Daten zurückgeben, wenn Round Robin nicht implementiert ist.

Ссылка

    
Leblanc Meneses 08.11.2011 01:51
quelle