Example Webservice / API call- Yelp and working through oAuth2

Friendly robot with a green map-pin chest icon, a plus sign, and a cloud labeled REST API, representing an AutoHotkey script calling web servicesPerson reading a newspaper at a desk beside a black water bottle with a green logo and a laptopIn our API webinar we discussed how oAuth2 works however there is no better way to explain it than to actually work through an example!  In the below video & code I demonstrate how to access Yelp to perform the “handshake” with oAuth1 and receive the oAuth2 authentication.  I also demonstrate using a named Regular Expression to isolate the returned token.

;~  https://www.yelp.com/developers/documentation/v3/authentication
ID:="94MAk4OrJa_y7ww5IV7HQg"
Secret:="eaHaNtMp4SbdBLB7aWpReLhe2oGWqeT32cMDG8ksMUc6r4ARA2RmPo7o6y6mG0pS"
EndPoint:="https://api.yelp.com/oauth2/token"
QueryString:=QueryString_Builder({"grant_type":"client_credentials","client_id":ID,"client_secret":Secret})
;***********API call to get Authorization Token*******************
HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
HTTP.Open("POST",EndPoint . QueryString)
HTTP.Send()
data:=HTTP.ResponseText ;~ MsgBox,,title, % response
RegExMatch(data,".*access_token\x22:\s\x22(?<Token>.*?)\x22.*",Yelp_) ;RegEx to grab token
;~  MsgBox % Yelp_token
;~  https://www.yelp.com/developers/v3/manage_app?app_created=True
;~  https://www.yelp.com/developers/documentation/v3/business_search
EndPoint:="https://api.yelp.com/v3/businesses/search"
;~  https://www.yelp.com/developers/documentation/v2/all_category_list
;~  https://www.yelp.com/developers/documentation/v2/all_category_list/categories.json
QueryString:=QueryString_Builder({"term":"restaurants","location":"Coppell, TX","categories":"chicken_wings"})
;***********API call to yelp with Credentials*******************
HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
HTTP.Open("GET", EndPoint . queryString)
HTTP.SetRequestHeader("Authorization","Bearer " . Yelp_token)
HTTP.Send()
Response_Data:=HTTP.ResponseText ;~ MsgBox,,title, % response
Response_Data:=formatjson(Response_Data)
SciTE_Output(Response_Data) ;Text,Clear=1,LineBreak=1,Exit=0

;***********QueryString Builders*******************
QueryString_Builder(kvp){
for key, value in kvp
  queryString.=((A_Index="1")?(url "?"):("&")) key "=" value
return queryString
}

A black AutoHotkey branded water bottle on a desk beside a laptop, with a person reading a newspaper in the backgroundVideo walking through the API example / oAuth2 process

 

 

 

Example Webservice / API call- Yahoo Query Language with AutoHotkey

Friendly robot with a green map-pin chest icon, a plus sign, and a cloud labeled REST API, representing an AutoHotkey script calling web servicesA close view of a laptop keyboard and touchpad with a small blue USB port and cables visible at the edge, shown in a tech blog post
While we touched on this API in our API Webinar, I wanted to review a bit more and demonstrate the Yahoo Console which can greatly aide you in developing your API calls.  Below is the code I demonstrate in the video.  The Yahoo API is pretty straight-forward and, for many calls, you don’t need a secure Token or ID!
If you’re new to API calls, be sure to get our API Syntax Writer


Video demonstrating Example API call to Yahoo