Ich versuche, die folgende Twitter-API aufzurufen, um eine Liste der Follower für einen Benutzer zu erhalten.
http://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=username
Und ich erhalte diese Fehlermeldung als Antwort.
{
code = 215;
message = "Bad Authentication data";
}
Ich kann die Dokumentation zu diesem Fehlercode nicht finden. Hat jemand eine Idee zu diesem Fehler?
Antworten:
Ein sehr prägnanter Code ohne andere PHP-Datei enthält oauth usw. Bitte beachten Sie, dass Sie sich bei https://dev.twitter.com anmelden und eine Anwendung erstellen müssen, um die folgenden Schlüssel zu erhalten .
Grüße
quelle
Die einzige Lösung, die ich bisher gefunden habe, ist:
Mit diesen Token können Sie authentifizierte Anfragen im Namen des Benutzers stellen. Sie können dies mit derselben Bibliothek tun.
Dadurch erhalten Sie eine Liste der Freunde des Benutzers.
quelle
GEFUNDENE LÖSUNG - mithilfe der Abraham TwitterOAuth-Bibliothek . Wenn Sie eine ältere Implementierung verwenden, sollten die folgenden Zeilen hinzugefügt werden, nachdem das neue TwitterOAuth-Objekt instanziiert wurde:
Die ersten beiden Zeilen sind jetzt in der Readme-Datei der Abraham-Bibliothek dokumentiert, die dritte jedoch nicht. Stellen Sie außerdem sicher, dass Ihre oauth_version immer noch 1.0 ist.
Hier ist mein Code zum Abrufen aller Benutzerdaten von 'users / show' mit einem neu authentifizierten Benutzer und zum Zurückgeben des vollständigen Benutzernamens und des Benutzersymbols mit 1.1 - der folgende Code ist in der Authentifizierungsrückrufdatei implementiert:
Der folgende Code befindet sich dann in der Umleitung nach Authentifizierung und Tokenanforderung
Ich habe viel zu lange gebraucht, um das herauszufinden. Hoffe das hilft jemandem !!
quelle
Die URL mit
/1.1/
darin ist korrekt, es ist die neue Twitter API Version 1.1.Sie benötigen jedoch eine Anwendung und autorisieren Ihre Anwendung (und den Benutzer) mit oAuth.
Weitere Informationen hierzu finden Sie auf der Dokumentationsseite der Twitter-Entwickler :)
quelle
Die Antwort von Gruik hat für mich im folgenden Thread funktioniert.
{Auszug | Zend_Service_Twitter - API v1.1 bereit machen }
quelle
UPDATE: Twitter API 1 ist jetzt veraltet. Siehe obige Antwort.
Twitter 1.1 funktioniert nicht mit dieser Syntax (als ich diese Antwort schrieb). Muss 1 sein, nicht 1.1. Das wird funktionieren:
http://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=username
quelle
protected $apiVersion = '1.1';
in der Datei EpiTwitter.php funktioniert gut für die Twitter-API-Version 1.1Nach zwei Tagen der Forschung fand ich schließlich , dass für den Zugriff so öffentliche Tweets Sie müssen nur alle Anwendungsberechtigungen, und nicht , dass bestimmte Benutzer diejenigen. Wenn Sie also für einen Kunden entwickeln, müssen Sie ihn nicht bitten, etwas zu tun.
Um die neue Twitter API 1.1 nutzen zu können, benötigen Sie zwei Dinge:
Zuerst können (müssen) Sie eine Anwendung mit Ihren eigenen Anmeldeinformationen erstellen und dann das Zugriffstoken (OAUTH_TOKEN) und das Zugriffstoken-Geheimnis (OAUTH_TOKEN_SECRET) aus dem Abschnitt " Ihr Zugriffstoken " abrufen . Anschließend geben Sie sie im Konstruktor für das neue TwitterOAuth-Objekt an. Jetzt können Sie auf alle öffentlichen Tweets zugreifen .
Eigentlich denke ich, dass Pavel dies auch vorgeschlagen hat, aber es ist aus seiner Antwort nicht so offensichtlich.
Hoffe das spart jemand anderem diese zwei Tage :)
quelle
Sie müssen customerKey und customerSecret an Zend_Service_Twitter senden
quelle
Dies könnte jemandem helfen, der Zend_Oauth_Client verwendet, um mit Twitter-API zu arbeiten. Diese funktionierende Konfiguration:
Es sieht so aus, als ob die Twitter-API 1.0 die oauth-Version 1.1 und 1.0 zulässt, während für die Twitter-API 1.1 nur die oauth-Version 1.0 erforderlich ist.
PS Wir verwenden Zend_Service_Twitter nicht, da keine benutzerdefinierten Parameter bei der Statusaktualisierung gesendet werden können.
quelle
Stellen Sie sicher, dass Sie Lese- und Schreibzugriff für die Anwendung in Twitter haben
quelle
Ich verwende HybridAuth und habe diesen Fehler beim Herstellen einer Verbindung zu Twitter festgestellt . Ich habe es aufgespürt, um (mir) Twitter einen falsch umschlossenen Anfragetyp zu senden (get / post anstelle von GET / POST).
Dies würde eine 215 verursachen:
Dies würde nicht:
Randnotiz: Im Fall von HybridAuth würde dies auch nicht der Fall sein (da HA intern den korrekt umhüllten Wert für den Anforderungstyp bereitstellt):
quelle
Ich hatte die ganze Zeit das gleiche Problem. Die einzige Lösung, die ich herausgefunden habe, ist das Tippen
CONSUMER_KEY
und dieCONSUMER_SECRET
direkte Definition der neuen TwitterOAuth-Klasse.Verwenden Sie hierfür keine Variablen oder Statiken und prüfen Sie, ob das Problem behoben wurde.
quelle
Hier muss zuerst jeder oauth2 / token api verwenden, dann Follower / list api .
Andernfalls erhalten Sie diesen Fehler. Weil Follower / Listen-API eine Authentifizierung erfordert.
In Swift (für Mobile App) habe ich auch das gleiche Problem bekommen.
Wenn Sie die APIs und ihre Parameter kennenlernen möchten, folgen Sie diesem Link. Holen Sie sich schnell eine Twitter-Freundesliste?
quelle
Ich weiß, dass dies alt ist, aber gestern hatte ich das gleiche Problem, als ich diese URL mit C # und der HttpClient-Klasse mit dem Bearer-Authentifizierungstoken aufrief:
http://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=username
Es stellt sich heraus, dass die Lösung für mich darin bestand, HTTPS anstelle von HTTP zu verwenden. Meine URL würde also so aussehen:
https : //api.twitter.com/1.1/followers/ids.json? cursor = -1 & screen_name = username
Hier ist ein Ausschnitt aus meinem Code:
quelle
{"errors":[{"message":"Bad Authentication data","code":215}]}
Probieren Sie diesen Twitter API Explorer aus . Sie können sich als Entwickler anmelden und alles abfragen, was Sie möchten.
quelle