world w3schools net hello form classic asp api asp-classic

api - w3schools - Proporcionar información de autenticación a través de msxml2.ServerXMLHTTP



w3schools com asp net (2)

Estoy usando ASP clásico e intento usar la API de JustGiving.

Me gustaría usarlo para mostrar el monto total recaudado y el total de donaciones recibidas en mi página de donaciones en mi sitio web.

Puedo ver que la información está disponible en: https://api.justgiving.com/docs/resources/v1/Account/Retrieve

<% vurl = "http://api.justgiving.com/---myIDhere---/v1/account" Set http = Server.CreateObject("msxml2.ServerXMLHTTP") http.Open "GET", vurl, False http.Send Set dom = Server.CreateObject("msxml2.DOMDocument") dom.loadXML http.responseText Set items = dom.getElementsByTagName("account") For Each item In items Set var_totalDonated = item.getElementsByTagName("totalDonated") If NOT (var_totalDonated IS Nothing) Then var_totalDonated = ap(totalDonated(0).Text) response.write var_totalDonated End If Next %>

Sin embargo, la página se agota cuando tengo acceso a ella.

Creo que es porque necesito proporcionar información de autenticación como se detalla aquí: https://api.justgiving.com/docs/usage#protectedResources

Así que obtuve esa información de autenticación.

Pero no tengo idea de cómo "enviarlo" a la API, para que pueda autenticarme como usuario y proporcionar la información.

También menciona proporcionar información en el encabezado a través del enlace que está arriba (no puedo publicar el enlace porque no tengo suficiente reputación), pero reemplazo #protectedResources al final de la URL con #contentTypes.

Lo siento. ¿Me falta algo de ese lado?

Lo siento si estoy haciendo preguntas tontas, pero la información en los documentos API asume cierto nivel de inteligencia por parte del usuario, ¡y no tengo mucho de eso!

Cualquier consejo muy apreciado.

Gracias

Gracias a John por su respuesta.

Basado en eso, cambié el código a:

<% vurl = "https://api.justgiving.com/API_KEY/v1/account" Set http = Server.CreateObject("msxml2.ServerXMLHTTP") http.Open "GET", vurl, False, "username", "pwd" http.setTimeouts 5000, 5000, 10000, 10000 ''''ms - resolve, connect, send, receive http.setRequestHeader "Authorization", "Basic MY_AUTH_STRING" http.Send Set dom = Server.CreateObject("msxml2.DOMDocument") dom.loadXML http.responseText Set items = dom.getElementsByTagName("account") For Each item In items Set var_totalDonated = item.getElementsByTagName("totalDonated") If NOT (var_totalDonated IS Nothing) Then var_totalDonated = (var_totalDonated(0).Text) response.write var_totalDonated End If Next %>

Pero desafortunadamente la página todavía se agota.

Estoy revisando también a través de: groups.google.com/forum/#!topic/justgiving-api/Xhz5Fkxuy1s

Pero no hay respuesta hasta el momento.

Gracias de nuevo

Versión arreglada

<% Sub debug( varName ) Dim varValue varValue = Eval( varName ) response.write "<p style=''margin:10px; border-bottom:2px solid #ccc;border-top:1px solid #eaeaea;background-color:white;padding:10px;color:red;text-align:left;''><strong>" & varName & "</strong>: " & varvalue & "</p>" & vbcrlf & vbcrlf End Sub vurl = "https://api.justgiving.com/AP_KEY/v1/account" Set http = Server.CreateObject("msxml2.ServerXMLHTTP") http.Open "GET", vurl, False, username, password http.setTimeouts 5000, 5000, 10000, 10000 ''ms - resolve, connect, send, receive http.setRequestHeader "Authorization", "Basic AUTH_STRING" http.Send Response.ContentType = "application/xml" Set dom = Server.CreateObject("msxml2.DOMDocument") dom.loadXML http.responseText Set items = dom.getElementsByTagName("account") For Each item In items Set var_totalDonated = item.getElementsByTagName("totalDonated") If NOT (var_totalDonated IS Nothing) Then var_totalDonated = ap(var_totalDonated(0).Text) debug "var_totalDonated" End If Set var_totalRaised = item.getElementsByTagName("totalRaised") If NOT (var_totalRaised IS Nothing) Then var_totalRaised = ap(var_totalRaised(0).Text) debug "var_totalRaised" End If Set var_totalGiftAid = item.getElementsByTagName("totalGiftAid") If NOT (var_totalGiftAid IS Nothing) Then var_totalGiftAid = ap(var_totalGiftAid(0).Text) debug "var_totalGiftAid" End If Next %>

Anteriormente estaba usando:

vurl = "https://api.justgiving.com/AP_KEY/v1/account"

Pero cuando lo cambié a https, funcionó.

Pensé que lo había intentado anteriormente, pero obviamente no.

Gracias de nuevo a John, ¡realmente aprecio tu ayuda!


Disculpas por agregar a una publicación anterior. Sin embargo, esto siempre ha surgido al buscar en Google ayuda con MailChimp API V3.0 y VBA.

Esta es la solución que utilicé:

ret = objhttp.Open("POST", sURL, False) objhttp.setRequestHeader "Content-Type", "application/json" objhttp.setRequestHeader "Accept", "application/json" ''V3 API uses HTTP Basic Authorisation inside an https: wrapper. ''The standard windows method does not seem to work however the ''following hack does. ''In summary the user name and APIkey are seperated with a Colon: and ''base 64 encoded and added to a Http RequestHeader objhttp.setRequestHeader "Authorization", "Basic " & Base64Encode(APIUser & ":" & ApiKey) objhttp.send (sJson)

Deberá codificar la función Base64Encode. Agarré un código de http://pastie.org/1192157 (Ex ) y lo pegué en un Módulo de VBA.

Espero eso ayude.


Tratar

http.Open "GET", vurl, False, "yourusername", "yourpassword"

No sé si esto funciona con justicia, pero lo hace con la API de Bing

Además, esta pregunta puede ser relevante XmlHttp Request Basic Authentication Issue

Editar - utilizando Response.ContentType y Msxml2.ServerXMLHTTP.6.0

vurl = "https://api.justgiving.com/API_KEY/v1/account" Set http = Server.CreateObject("msxml2.ServerXMLHTTP.6.0") http.Open "GET", vurl, False, "username", "pwd" http.setTimeouts 5000, 5000, 10000, 10000 ''ms - resolve, connect, send, receive'' http.setRequestHeader "Authorization", "Basic MY_AUTH_STRING" http.Send Response.ContentType = "application/xml" Set items = http.responseXML.getElementsByTagName("account")

etc