Pregunta

I've been working on this for a few hours, and don't seem to be getting anywhere fast! I've found plenty of examples for PHP, but none at all for ColdFusion. As far as I'm aware, I should be on the right track, but I keep getting an error returned.

My understanding (which, of course, may be wrong) is that I trigger the API with cfhttp and add a cfhttpparam for authorization. However, I'm not entirely sure what the header name should be - and I've tried quite a few!

Here's what I have right now;

<cfset acctkey = ToBase64("MYACCOUNTKEY")>

<cfhttp url="https://api.datamarket.azure.com/Bing/SearchWeb/v1/Web?Query=%27MY_QUERY%27&Market=%27en-GB%27" method="get" resolveurl="yes">
<cfhttpparam type="header" name="Authorization: Basic " value="#acctkey#">
</cfhttp>

Every variation gives me the following error returned;

"The authorization type you provided is not supported. Only Basic and OAuth are supported"

I've also tried the following, with the same error;

<cfhttp url="https://user:#acctkey#@api.datamarket.azure.com/Bing/SearchWeb/v1/Web?Query=%27#url.q#%27&Market=%27en-GB%27" method="get">

The online docs (https://datamarket.azure.com/dataset/bing/searchweb) really don't seem to cover this outside of PHP and ASP - I can't even find a reference showing the header names that need to be passed!

Pointers would be much appreciated!

¿Fue útil?

Solución

Purely through frustration, I now have this working. In a nutshell, it works if you DON'T Base64 encode, and you add username & password to the cfhttp tag, like so;

<cfhttp url="https://api.datamarket.azure.com/Bing/SearchWeb/v1/Web?Query=%27MY_QUERY%27&Market=%27en-GB%27" method="get" username="MyACCOUNTKEY" password="MyACCOUNTKEY"> 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top