« 【BOX】【ArmMac】box.fs | トップページ | [Numbers]古いnumbersファイルは日本語指定を »

【QR】アドレス帳登録用のQRコードを作る(Google Chart利用)

【QR】アドレス帳登録用のQRコードを作る(Google Chart利用)
https://force4u.cocolog-nifty.com/skywalker/2019/07/post-deb3db.html

AppleScriptでphpを利用していた部分



---URLエンコードのサブルーチン
on encodeURL(str)
set scpt to "php -r 'echo urlencode(\"" & str & "\");'"
return do shell script scpt
end encodeURL


python3に作り直し

---URLエンコードのサブルーチン
on encodeURL(str)
set scpt to ("python3 -c 'import urllib.parse;[print(urllib.parse.quote(\"" & str & "\", safe=\"/:;#!?=\"))]'") as text
return do shell script scpt
end encodeURL

ダウンロード - chart.googleapis.com.add.scpt.zip

(*

chart.googleapis.com.add.scpt
アドレス帳登録用のQRコードを生成します。
たぶんiOS専用 

20190706 初回作成
20190715 phpのエラー処理追加
20211204 phpでの%エンコードの処理をpython3に置き換え

APIの仕様は
https://developers.google.com/chart/infographics/docs/qr_codes


*)

----設定項目
set theNa to "" as text ---
set theNb to "寅次郎" as text ---
set theOrg to "くるまや" as text ---会社名
set theMailWork to "foo@hoge.com" as text ---メール会社
set theMailHome to "foo-hoge@mobie.com" as text ---メール自宅
set theTelWork to "123-456-7890" as text ---電話会社
set theTelCell to "000-1111-2222" as text --- 電話携帯
set theTelInt to "" as text ---内線

----設定ここまで
--姓名表示をを整形 半角スペース区切り
set theFN to (theNa & " " & theNb) as text


----URLエンコード
set theNa to my encodeURL(theNa)
----URLエンコード
set theNb to my encodeURL(theNb)
----URLエンコード
set theFN to my encodeURL(theFN)
----URLエンコード
set theOrg to my encodeURL(theOrg)

----Vカードデータを整形 改行コードはMac
set theChl to "BEGIN:VCARD\rVERSION:3.0\rN:" & theNa & ";" & theNb & ";;;\rFN:" & theFN & "\rORG:" & theOrg & ";\rEMAIL;type=INTERNET;type=WORK;type=pref:" & theMailWork & "\rEMAIL;type=INTERNET;type=HOME:" & theMailHome & "\rTEL;type=WORK;type=pref:" & theTelWork & "\rTEL;type=CELL:" & theTelCell & "\ritem1.TEL:" & theTelInt & "\ritem1.X-ABLabel:内線\rEND:VCARD" as text

--API各項目
--BASE URL
set theApiUrl to "https://chart.googleapis.com/chart?" as text

set theCht to "qr" as text

set theChs to "504x504" as text

set theChoe to "UTF-8" as text

---L M Q R
set theChld to "Q" as text

set theChl to doReplace(theChl, "+", "%20") as text

--URLを整形
set theOpenUrl to ("" & theApiUrl & "&cht=" & theCht & "&chs=" & theChs & "&choe=" & theChoe & "&chld=" & theChld & "&chl=" & theChl & "") as text
---改行を%エンコード
set theOpenUrl to doReplace(theOpenUrl, "\r", "%0A") as text


-----サファリで開く
tell application "Safari"
activate
make new document with properties {name:"QR-CODE by Google API"}
tell window 1
open location theOpenUrl
end tell
end tell



---URLエンコードのサブルーチン
on encodeURL(str)
set scpt to ("python3 -c 'import urllib.parse;[print(urllib.parse.quote(\"" & str & "\", safe=\"/:;#!?=\"))]'") as text
return do shell script scpt
end encodeURL



to doReplace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end doReplace

|

« 【BOX】【ArmMac】box.fs | トップページ | [Numbers]古いnumbersファイルは日本語指定を »

Barcode2D」カテゴリの記事