« [valueForKey]レコードの値を取得 | トップページ | [WKWebView]QRコードを表示する »

[json]QRコードのイメージファイルをデコードする

api.qrserver.comのAPIを利用します

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

property objMe : a reference to current application
property objNSString : a reference to objMe's NSString
property objNSDictionary : a reference to objMe's NSDictionary
property objNSJSONSerialization : a reference to objMe's NSJSONSerialization

#####デフォルトロケーション
tell application "Finder"
##set aliasDefaultLocation to container of (path to me) as alias
set aliasDefaultLocation to (path to desktop folder from user domain) as alias
end tell

#####ファイル選択のダイアログ
set aliasFile to (choose file with prompt "QRコードのイメージファイルを選んでください" default location (aliasDefaultLocation) of type {"public.image"} with invisibles and showing package contents without multiple selections allowed) as alias
#####戻り値をパスに
set strFilePath to POSIX path of aliasFile as text
#####zxing.org使う場合
###set strCommandText to "/usr/bin/curl -d \"f=file\" --data-binary 'decode=@" & strFilePath & "' 'https://zxing.org/w/decode.jspx?'"
#####コマンドライン整形
set strCommandText to "/usr/bin/curl -X POST -H \"Content-Type: multipart/form-data\" -F \"file=@" & strFilePath & "\" \"http://api.qrserver.com/v1/read-qr-code/\" "
#####コマンド実行 戻り値はJSON
set jsonResponse to (do shell script strCommandText) as text
#####NSDictionary初期化
set ocidNSDictionaryM to objNSDictionary's dictionary()
#####↑このNSDictionaryJSONの値を格納
set ocidJsonResponse to (objNSJSONSerialization's JSONObjectWithData:((objNSString's stringWithString:jsonResponse)'s dataUsingEncoding:(objMe's NSUTF8StringEncoding)) options:0 |error|:(missing value))
#####値を取り出す
set recodeCenters to (ocidJsonResponse's symbol)'s valueForKey:"data"
#####ダイアログを出す
set aliasIconPath to POSIX file "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/BookmarkIcon.icns" as alias
display dialog "QRバーコードの内容・デコード結果" with title "グローバル情報" default answer (recodeCenters as text) buttons {"OK", "キャンセル"} default button "OK" cancel button "キャンセル" with icon aliasIconPath giving up after 10 without hidden answer

log (recodeCenters as text)
return

|

« [valueForKey]レコードの値を取得 | トップページ | [WKWebView]QRコードを表示する »

AppleScript QR」カテゴリの記事

AppleScript Json」カテゴリの記事

AppleScript Barcode」カテゴリの記事

AppleScript QR Decode」カテゴリの記事