Das Hinzufügen von media_ids zum Twitter-API-Aufruf führt zu Authentifizierungsproblemen

Magnus Smith

Ich habe eine einfache Webseite, auf der über die Twitter-REST-API unter https://api.twitter.com/1.1/statuses/update.json erfolgreich ein Nur-Text-Tweet erstellt werden kann. Ich kann auch ein JPG-Bild mit https://upload.twitter.com/1.1/media/upload.json auf Twitter hochladen und eine Zahl media_iderfolgreich zurückerhalten . Was ich nicht tun kann, ist diese beiden zusammenzufügen, um einen Bild-Tweet zu erstellen: Er erhält den HTTP-Statuscode 401, wenn ich die media_id hinzufüge!

Ich verwende ASP.NET (ich habe sowohl VB- als auch C # -Beispiele), aber ich gehe davon aus, dass das Problem nicht spezifisch für diese Sprache ist. Die einzigen zwei Bits des Tweet-Codes, die ich ändere, sind dort, wo der gleiche "Querystring" aufgebaut ist:

var baseFormat = "oauth_consumer_key={0}&oauth_nonce={1}&oauth_signature_method={2}&oauth_timestamp={3}&oauth_token={4}&oauth_version={5}&status={6}&media_ids={7}";
var baseString = string.Format(baseFormat, oauth_consumer_key, oauth_nonce, oauth_signature_method, oauth_timestamp, oauth_token, oauth_version, Uri.EscapeDataString(TweetText), TwitterMediaID);

und

var postBody = "status=" + Uri.EscapeDataString(TweetText) + "&media_ids=" + TwitterMediaID;
using (System.IO.Stream stream = request.GetRequestStream())
        {
            byte[] content = System.Text.ASCIIEncoding.ASCII.GetBytes(postBody);
            stream.Write(content, 0, content.Length);
        }

Alles, was dies wirklich tut, ist &media_ids=1104003004334784512an das Ende der Zeichenfolge anzuhängen . Der Rest meines Codes ändert sich nicht.

Der JSON, den ich zurück bekomme, ist: {"errors":[{"code":32, "message":"Could not authenticate you."}]}

Wenn ich entferne, &media_ids=12345678901234567ist der Code erfolgreich (HTTP-Statuscode 200 und viele nützliche JSON-Daten zurückgegeben).

Ich glaube nicht, dass ich spezielle Berechtigungen benötige, um einen Bild-Tweet zu erstellen, im Vergleich zu einem Nur-Text-Tweet. Ich habe verschiedene Blogs gelesen, in denen erwähnt wird, dass bei der Verwendung von media_ids zeitweise HTTP 401-Fehler aufgetreten sind, die überhaupt nichts mit Authentifizierung zu tun haben, aber keine der von ihnen angebotenen Lösungen für meine Website gilt.

Aus der Dokumentation geht hervor, dass meine media_id 2 Stunden lang gültig ist. Wie kann ich also den Authentifizierungsaspekt durcheinander bringen, wenn meine Nur-Text-Tweets in meinem Twitter-Profil angezeigt werden? OK?

osowskit

Twitter erfordert, dass API-Anforderungen die OAuth 1.0a-Authentifizierung verwenden . Eine Einschränkung ist, dass die HMAC-SHA1-Signatur in einem ganz bestimmten Format erstellt werden muss.

In diesem Fall muss das baseFormatalphabetisch sortiert sein - siehe https://developer.twitter.com/de/docs/basics/authentication/guides/creating-a-signature.html

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Das schnelle Hinzufügen von int zum Vektor und das Löschen führt zu Zugriffsverletzungen

Das Hinzufügen von .removeStateDidListener zu deinit führt zum Absturz der Anwendung

Das Hinzufügen von Kriterien zum Verfahren führt zu einer schlechten Leistung

Das Hinzufügen von Elementen zu einem Stapel führt zum Absturz

Das Hinzufügen eines Fortschrittsbalkens als Fußzeile zur Listenansicht führt zu einer Klassenumwandlungsausnahme beim Aufruf von setAdapter

Das programmgesteuerte Hinzufügen von Einschränkungen zu Ansichten mithilfe von ConstraintSet führt in Android nicht zum erwarteten Ergebnis.

Das Hinzufügen von AppCentre Pod zum xCode-Projekt führt zu einem Fehler beim Importieren von Modulen

Das Hinzufügen von Rich Cards-Daten zu meiner Dotnet-Anwendung führt zum Absturz

Warum führt das Hinzufügen eines Audiostreams zum libavcodec-Ausgabecontainer von ffmpeg zu einem Absturz?

Wie führt das Hinzufügen von n ganzen Zahlen zu einer Zeichenfolge zum Subtrahieren der ersten n Zeichen?

Die Überlastungsauflösung führt beim Hinzufügen von Vorlagenparametern zu einem mehrdeutigen Aufruf

Inverse Beziehung zu Kerndaten führt zum Absturz beim Hinzufügen von Objekten zu NSSet

Das Hinzufügen von Butterknife zum Android-Bibliotheksprojekt führt zu einem Fehler bei der Kompilierung "Paket existiert nicht" für Bibliotheksklassen

Das Hinzufügen von Autofilter und Sortieren führt zum Absturz von Excel

Das Hinzufügen und Subtrahieren von Period von LocalDate führt nicht zum gleichen Datum

Das Hinzufügen eines Abschnitts zu appsettings.json führt zum Absturz

Führt das Hinzufügen eines Elements zu einer Liste zum Kopieren der Liste oder nicht?

Das Hinzufügen des UUID-Typs zu Cerberus führt zum Fehler BAD_TYPE

Das Hinzufügen der while-Schleife zum Skript führt zu Fehlern bei der Eingabe

Das Hinzufügen des zweiten Kindes zum Supervisor führt zu einem Fehler

Das Hinzufügen einer Where-Bedingung zum Zeitstempel führt zu ungeraden aggregierten Ergebnissen

Das Hinzufügen einer Pfeilfunktion zum Eingabefeld führt zu einem Fehler

Das Hinzufügen der Uhrzeit zum Kalenderdatum unter Linux führt zu einem falschen Ergebnis

Das Hinzufügen eines Bildes zum Element mit appendChild führt zu einem Fehler

Das Hinzufügen eines Arrays zum useEffect-Abhängigkeitsarray führt zu einer Endlosschleife

Das Hinzufügen der JGIT-Bibliothek zum Projekt führt zu überlappenden Ressourcen

Das Hinzufügen von Gomock-Tests zum Projekt führt beim Ausführen des Tests zu "Build-Einschränkungen schließen alle Go-Dateien aus"

Das Hinzufügen einer Datei von der URL zum Docker-Image führt zu einem anderen Ergebnis, wenn Sie Volume verwenden

Das Hinzufügen von Ankern zum Markdown-Abschnitt führt zu unvollständigen HTML-Fragmenten in Abschnittstiteln im gerenderten Markdown

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv