Frage

Der Versuch, klassische ASP mit dem Tumblr API zu integrieren. Ich möchte das die Tumblr Schreib-API automatisieren sowie Beiträge aus der klassischen ASP-Website. Die Tumblr API befindet sich hier: http://www.tumblr.com/docs/en/api .

Dies ist das Schreib PHP Beispiel für den Tumblr-API.

// Authorization info  
$tumblr_email    = 'info@davidville.com';  
$tumblr_password = 'secret';  

// Data for new record  
$post_type  = 'regular';  
$post_title = 'The post title';  
$post_body  = 'This is the body of the post.';  

// Prepare POST request  
$request_data = http_build_query(  
    array(  
        'email'     => $tumblr_email,  
        'password'  => $tumblr_password,  
        'type'      => $post_type,  
        'title'     => $post_title,  
        'body'      => $post_body,  
        'generator' => 'API example'  
    )  
);  

// Send the POST request (with cURL)  
$c = curl_init('http://www.tumblr.com/api/write');  
curl_setopt($c, CURLOPT_POST, true);  
curl_setopt($c, CURLOPT_POSTFIELDS, $request_data);  
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);  
$result = curl_exec($c);  
$status = curl_getinfo($c, CURLINFO_HTTP_CODE);  
curl_close($c);  

// Check for success  
if ($status == 201) {  
    echo "Success! The new post ID is $result.\n";  
} else if ($status == 403) {  
    echo 'Bad email or password';  
} else {  
    echo "Error: $result\n";  
}  

Ich versuche, eine Übersetzung in ASP. Ich muss wissen, wie Sie den Status wieder von der Seite zu bekommen. Auch ein Hinweis für den Anfang wäre toll. Eine Lösung, sogar noch besser. Ich habe bis hierher mit klassischen ASP und Microsoft XMLHttpObject bekommen:

' Authorization info  
tumblr_email    = "info@davidville.com"  
tumblr_password = "secret"  

' Data for new record  
post_type  = "regular"  
post_title = "The post title"  
post_body  = "This is the body of the post."  

' Prepare POST request  
request_data = "email=" tumblr_email & "&" &  
request_data = request_data & "password=" & tumblr_password & "&" &  
request_data = request_data & "type=" & post_type & "&" &  
request_data = request_data & "title=" & post_title & "&" &  
request_data = request_data & "body=" & post_body & "&" &  
request_data = request_data & "generator=Your Generator Name"  

request_data = server.urlencode(request_data)  

Dim objHttp, strQuery  
strQuery = “http://www.tumblr.com/api/write”  
set objHttp = Server.CreateObject(“Msxml2.ServerXMLHTTP”)  
objHttp.open “GET”, strQuery, false  
objHttp.send  
Response.Write objHttp.ResponseText  
Set objHttp = Nothing

Hier ist der richtige Code, nach Versuch und Irrtum, für einen regelmäßigen Beitrag Tumblr mit klassischen ASP. Dank https://stackoverflow.com/users/69820/oracle-certified-professional für die Hilfe .

' Authorization info  
tumblr_email = "your_registered_email"  
tumblr_password = "your_tumblr_password"  

' Data for new record  
post_type = "regular"  
post_title = "The post title"  
post_body = "This is the body of the post."  

' Prepare POST request  
request_data = "email=" & tumblr_email & "&"  
request_data = request_data & "password=" & tumblr_password & "&"  
request_data = request_data & "type=" & post_type & "&"  
request_data = request_data & "title=" & server.urlencode(post_title) & "&"  
request_data = request_data & "body=" & server.urlencode(post_body)  

set http = CreateObject("MSXML2.ServerXMLHTTP")  
http.open "POST", "http://www.tumblr.com/api/write", false  
http.setRequestHeader "Content-type", "application/x-www-form-urlencoded"  
http.setRequestHeader "Content-length", len(content)  
http.setRequestHeader "Connection", "close"  
http.send request_data  
Response.Write http.responseText 

werde ich andere Beispiele für Tumblr Beiträge das Hinzufügen (Fotos, Zitate, etc.) auf http: // www. genxts.com in ein paar Tagen.

War es hilfreich?

Lösung

Um eine POST-Anforderung über klassische ASP laufen, alles, was Sie brauchen, ist die MSXML2 Bibliothek verwenden tun (wie Sie in IE Ajax tun würden):

bauen Sie Ihre Anfrage Daten als URL-Zeichenfolge, die die gleiche Art und Weise, wie Sie Parameter für eine GET buid. Stellen Sie sicher, dass es urlencoded

dim request_data: request_data = "key1=value1&key2=value2"

das Request-Objekt erstellen und an die URL per Post an. der dritte Parameter bestimmt, ob der Anruf synchron ist oder nicht. vermutlich müssen Sie die Serverversion des Objekts anstelle des Standard-MSXML2.XMLHTTP Objekt

dim http: set http = CreateObject("MSXML2.ServerXMLHTTP")
http.open "POST", "http://www.tumblr.com/api/write", false

alle http-Request-Header gesetzt Sie brauchen,

http.setRequestHeader "Content-type", "..."

fügen Sie Ihre Anfrage Daten auf die Anfrage

http.send request_data

Sie können dann auf die Antwort über

dim text: text = http.responseText

oder

dim xml: set xml = http.responseXML

in Abhängigkeit von der Art der Daten, die Sie zurück. Hier ist ein handlicher Link: http://msdn.microsoft .com / de-de / library / ms754586 (v = VS.85) aspx


ok, ich es geschafft, dies zu Arbeit bekommen

dim http: set http = CreateObject("MSXML2.ServerXMLHTTP")

dim email: email = "email@example.com"
dim password: password = "*password"
dim content: content = content & "type=regular"
content = content & "&body=this is a test"

content = content & "&email=" & email
content = content & "&password=" & password



http.open "POST", "http://www.tumblr.com/api/write", false
http.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
http.setRequestHeader "Content-length", len(content)
http.setRequestHeader "Connection", "close"

http.send content
Response.Write http.responseText

es scheint, es nicht wie die URL-Codierung hat. Ich habe versucht, kodiert nur die anderen Inhalte, die nicht die E-Mail-Passwort war

content = Server.URLEncode(content)
content = content & "&email=" & email
content = content & "&password=" & password

, aber ich habe ein "Post darf nicht leer sein" message

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top