2016-05-13 3 views
0

Ich habe ein Problem. Ich habe die Header Authorization erzeugt durch OAuth-Tool auf Twitter (I versteckten Wert von Schlüsseln)Twitter API Einstellung Autorisierung Header in jQuery AJAX

Authorization: OAuth oauth_consumer_key="xxxxxxxxxxxxxxxx", oauth_nonce="xxxxxxxxxxxxxxxx", oauth_signature="xxxxxxxxxxxxxxx", oauth_signature_method="HMAC-SHA1", oauth_timestamp="xxxxxxxxx", oauth_version="1.0" 

Und ich habe einen AJAX-Code:

$.ajax({ 
    url: 'https://api.twitter.com/1.1/search/tweets.json?q=%23freebandnames&since_id=24012619984051000&max_id=250126199840518145&result_type=mixed&count=4', 
    type: 'GET', 
    beforeSend: function (xhr) { 
      xhr.setRequestHeader('Authorization', 'OAuth oauth_consumer_key="xxxxxxxxxxxxxxx", oauth_nonce="xxxxxxxxxxxxxxx", oauth_signature="xxxxxxxxxxxxxxx", oauth_signature_method="HMAC-SHA1", oauth_timestamp="xxxxxxxxx", oauth_version="1.0"'); 
     }, 
    dataType: "jsonp", 
    success: function(data) { 
     console.log("Success: " + data); 
     } 
    }, 
    error: function(data) { 
     console.log("Error " + data); 
    } 

}); 

Aber dieser Code zurückgegeben Fehler

Object {readyState: 4, status: 404, statusText: "error"} 

Hier ist ein Teil der Dokumentation Twitter REST API, die ich verwende: https://dev.twitter.com/rest/reference/get/search/tweets

Was ist los? Irgendwelche Ideen?

Antwort

1

Twitter unterstützt nicht die Generierung des Authentifizierungsheaders von einer Webseite. Sie müssen den "Handshake" über ihre Website durchlaufen, um sich zu authentifizieren und zu Ihrer Webseite zurückzuleiten.

Wenn Sie dies vermeiden und Ihre OAUTH-Schlüssel lokal behalten möchten, müssen Sie einen Server erstellen, der sich mit gespeicherten Schlüsseln authentifizieren kann. Dann wird Ihre Webseite Twitter-Anfragen über Ihren Server stellen.

+0

Sollten Sie nicht in der Lage sein, ein Bearer-Token und eine Autorisierung nur für Anwendungen zu verwenden? – Ketema

+0

Ich denke, das ist möglich - verwenden Sie AJAX, um einen POST-Befehl mit Ihrem base64-codierten Schlüssel und dem geheimen Schlüssel zu senden; Holen Sie den Zugangscode aus den zurückgegebenen Daten, und Sie sind auf dem Weg. Natürlich würde Twitter dich hassen, weil du deine Referenzen der Welt zugänglich machst :) – Jonas

Verwandte Themen