ヴァル研究所が提供している、公共交通機関の乗り換え検索アプリケーション「駅すぱあと」のREST APIを呼び出して、データのバージョンを求めるAppleScriptです。
本Scriptをためしてみる場合には、かならずご自分で「駅すぱあとWebサービス スタンダードプラン」の試用コードを取得してScript末尾にあるハンドラに記入してから実行してください。そのまま実行するとエラーになります。
AppleScript名:(GET)駅すぱあとAPIでデータバージョンを取得 |
— Created 2018-03-16 by Takaaki Naganoya — 2018 Piyomaru Software use AppleScript version "2.5" –macOS 10.11 or later use scripting additions use framework "Foundation" set aURL to "https://api.ekispert.jp/v1/json/dataversion" set apiKey to retAccessToken() of me set aRec to {|key|:apiKey} set reqURLStr to retURLwithParams(aURL, aRec) of me set aRes to callRestGETAPIAndParseResults(reqURLStr) of me set aRESCode to (responseCode of aRes) as integer if aRESCode is not equal to 200 then return false set aRESHeader to responseHeader of aRes set aRESTres to json of aRes as list of string or string (* {ResultSet:{engineVersion:"201803_04a", Version:{{createType:"Edition", create:"20180304", caption:"知識ベース"}, {createType:"Edition", create:"20180304", caption:"鉄道時刻表"}, {createType:"Date", caption:"JR", createComment:"Now", create:"20180317"}, {createType:"Date", caption:"私鉄", createComment:"Now", create:"20180312"}, {createType:"Edition", caption:"航空時刻表", rangeTo:"20180531", rangeFrom:"20180201", rangeCaption:"有効期間", create:"20180401"}, {createType:"Edition", create:"20180401", caption:"高速・連絡・深夜急行バス"}, {createType:"Edition", create:"20180401", caption:"船"}, {createType:"Date", caption:"得トクきっぷデータ", createComment:"Now", create:"20180201"}, {createType:"HideDay", caption:"住所データ", createComment:"Now", create:"20170101"}}, Copyrights:{companyId:"2", text:"交承 平成25年68号 JRデータの内容は、株式会社交通新聞社発行の「JR時刻表」2018年3月号に基づいています。 この時刻データを無断で転載・複写し、又は紙媒体、電磁媒体その他いかなる媒体に加工することも禁じます。 JRバスデータの内容は、株式会社交通新聞社作成のデータ平成30年3月分に基づいています。この時刻データを無断転載・複写や電磁媒体等に加工することを禁じます。 名鉄バスの情報は、名鉄バス株式会社作成のデータに基づいています。ただし一部のバス停ポール情報は株式会社ヴァル研究所が自らの責任により加工したものです。 ほか、一部の内容は株式会社ヴァル研究所が自らの責任により加工したものです。 on callRestGETAPIAndParseResults(aURL) set aRequest to current application’s NSMutableURLRequest’s requestWithURL:(current application’s |NSURL|’s URLWithString:aURL) aRequest’s setHTTPMethod:"GET" aRequest’s setValue:"gzip" forHTTPHeaderField:"Content-Encoding" set aRes to current application’s NSURLConnection’s sendSynchronousRequest:aRequest returningResponse:(reference) |error|:(missing value) set resList to aRes as list set bRes to contents of (first item of resList) set resStr to current application’s NSString’s alloc()’s initWithData:bRes encoding:(current application’s NSUTF8StringEncoding) set jsonString to current application’s NSString’s stringWithString:resStr set jsonData to jsonString’s dataUsingEncoding:(current application’s NSUTF8StringEncoding) set aJsonDict to current application’s NSJSONSerialization’s JSONObjectWithData:jsonData options:0 |error|:(missing value) –Get Response Code & Header set dRes to contents of second item of resList if dRes is not equal to missing value then set resCode to (dRes’s statusCode()) as number set resHeaders to (dRes’s allHeaderFields()) as record else set resCode to 0 set resHeaders to {} end if return {json:aJsonDict, responseCode:resCode, responseHeader:resHeaders} end callRestGETAPIAndParseResults on retURLwithParams(aBaseURL, aRec) set aDic to current application’s NSMutableDictionary’s dictionaryWithDictionary:aRec set aKeyList to (aDic’s allKeys()) as list set aValList to (aDic’s allValues()) as list set aLen to length of aKeyList set qList to {} repeat with i from 1 to aLen set aName to contents of item i of aKeyList set aVal to contents of item i of aValList set the end of qList to (current application’s NSURLQueryItem’s queryItemWithName:aName value:aVal) end repeat set aComp to current application’s NSURLComponents’s alloc()’s initWithString:aBaseURL aComp’s setQueryItems:qList set aURL to (aComp’s |URL|()’s absoluteString()) as text return aURL end retURLwithParams on retAccessToken() return "xxxx_XXxxXXXxxXX" –API Key end retAccessToken |
More from my site
(Visited 39 times, 1 visits today)