Question

Essayer d'intégrer ASP classique avec l'API Tumblr. Je veux automatiser la La Tumblr API d'écriture ainsi que des messages du site ASP classique. L'API Tumblr se trouve ici: http://www.tumblr.com/docs/en/api .

Ceci est l'exemple PHP d'écriture pour 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";  
}  

J'essaie une traduction en ASP. Je dois savoir comment obtenir le retour d'état de la page. Même un soupçon de commencer avec serait génial. Une solution, encore mieux. Je suis arrivé jusqu'ici avec ASP classique et 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

Voici le bon code, après le procès et l'erreur, pour un poste régulier à l'aide Tumblr ASP classique. Merci à https://stackoverflow.com/users/69820/oracle-certified-professional pour l'aide .

' 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 

J'ajouterons d'autres exemples pour les postes Tumblr (photos, citations, etc.) sur http: // www. genxts.com dans quelques jours.

Était-ce utile?

La solution

Pour exécuter une requête POST via ASP classique, tout ce que vous devez faire est d'utiliser la bibliothèque de MSXML2 (comme vous le feriez dans IE Ajax):

construire vos données de demande en tant que chaîne URL de la même manière que vous BUID les paramètres d'un GET. Assurez-vous qu'il est urlencoded

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

créer l'objet de la demande et se connecter à l'URL par la poste. le 3ème paramètre détermine si l'appel est synchrone ou non. sans doute vous avez besoin de la version serveur de l'objet, au lieu de l'objet standard MSXML2.XMLHTTP

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

définir les en-têtes de requête HTTP dont vous avez besoin

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

ajouter vos données de demande à la demande

http.send request_data

vous pouvez alors accéder à la réponse via

dim text: text = http.responseText

ou

dim xml: set xml = http.responseXML

en fonction du type de données que vous êtes de retour. Voici un lien pratique: http://msdn.microsoft .com / fr-fr / bibliothèque / ms754586 (v = VS.85) .aspx


ok, j'ai réussi à obtenir ce travail

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

il semble qu'il n'a pas aimé le codage URL. J'ai essayé juste coder l'autre contenu qui n'a pas été l'e-mail et mot de passe

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

mais je reçu un message « message ne doit pas être vide »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top