
In 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
}
Video walking through the API example / oAuth2 process

