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