WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » mit hash_hmac() erzeugte Signatur für OAuth twitter API ist falsch » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Ralli12
Hallo Ori,

danke für Deinen Tipp. rawurlencode() hab ich nach meinem Post schon ausprobiert. Die erzeugte Signatur hat sich aber nicht geändert und bleibt daher falsch

Vielleicht sonst noch eine Idee?

Ralf
von Ori
Du musst schon rawurlencode() nehmen...

(siehe https://dev.twitter.com/docs/auth/percent-encoding-parameters )
von Ralli12
Hallo allerseits,

ich programmiere gerade ein Anwendung, welche die twitter API nutzen soll.

Dabei will ich aus mehreren Gründen keine vorhandene Klasse nutzen, sondern das selbst entwicklen.

Der Signatur base string wird richtig erstellt (habe ich auf dev.twitter.com mit dem OAuth tool geprüft).

Allerdings erzeugt mein Skript eine andere Signatur als das OAuth tool.

Da der Signatur base string richtig ist, können ja nur noch der Key oder das Hashen falsch sein.

Der Key besteht laut twitter-Anleitung ja nur aus dem URL-kodierten Consumer Secret, einem & und dem URL-kodierten Oauth Token Secret:

$key=urlencode(CONSUMER_SECRET)."&".urlencode(OAUTH_TOKEN_SECRET);

Da kann man also auch nicht wirklich viel falsch machen. Und mein Consumer Secret und Oauth Token Secret sind original noch nicht URL-encoded. Somit kann der Fehler des doppelten URL-kodierens ausgeschlossen werden.

Also kann es eigentlich nur noch am Hashen liegen. Das hab ich so gemacht:

$signatur=urlencode(base64_encode(hash_hmac("sha1",$signaturbasestring,$key,TRUE)));

Was mache ich falsch?

Bin für jeden Tipp dankbar.

Liebe Grüße
Ralf

Nach oben