Domanda

Il tentativo di integrare Classic ASP con l'API Tumblr. Voglio automatizzare la scrittura di API Il Tumblr con messaggi dal sito web Classic ASP. L'API Tumblr si trova qui: http://www.tumblr.com/docs/en/api .

Questo è l'esempio PHP scrittura per l'API Tumblr.

// 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";  
}  

sto cercando una traduzione in ASP. Ho bisogno di sapere come ottenere la parte posteriore di stato dalla pagina. Anche un suggerimento per cominciare sarebbe grande. Una soluzione, ancora meglio. Ho ottenuto fino a questo punto con Classic ASP e Microsoft XMLHttpObject:

' 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

Ecco il codice corretto, dopo tentativi ed errori, per un posto regolare per Tumblr con Classic ASP. Grazie a https://stackoverflow.com/users/69820/oracle-certified-professional per l'aiuto .

' 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 

sarò l'aggiunta di altri esempi per i posti di Tumblr (foto, citazioni, ecc) su http: // www. genxts.com in pochi giorni.

È stato utile?

Soluzione

Per eseguire una richiesta POST tramite ASP classico, tutto quello che dovete fare è utilizzare la libreria MSXML2 (come si farebbe in IE Ajax):

costruire i dati di richiesta come una stringa URL allo stesso modo in cui si buid parametri per un GET. Assicurarsi che sia urlencoded

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

creare l'oggetto di richiesta e connettersi a l'url via posta. 3 ° parametro determina se la chiamata è sincrona o meno. presumibilmente è necessaria la versione del server dell'oggetto, anziché l'oggetto MSXML2.XMLHTTP standard di

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

impostare tutte le intestazioni di richiesta HTTP è necessario

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

aggiungere i dati di richiesta alla richiesta

http.send request_data

si può quindi accedere alla risposta tramite

dim text: text = http.responseText

o

dim xml: set xml = http.responseXML

a seconda del tipo di dati che si sta tornando. Ecco un link a portata di mano: http://msdn.microsoft .com / it-it / library / ms754586 (v = VS.85) aspx


ok, sono riuscito ad ottenere questo al lavoro

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

sembra che non ha fatto come la codifica URL. Ho provato solo la codifica l'altro contenuto che non era l'e-mail e la password

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

, ma ho ricevuto un messaggio di "post non deve essere vuoto"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top