したいこと
MSAccessとGoogle Script Appsで連携の試行錯誤中、どうしてもわからない箇所があったため、投稿させていただきます。
使用コードは今回はVBAを使用しています。受け取り側ではGASを用いていますが、エラーとなる部分がないと思い、投稿していません。
状況としましては、MSAccess(VBA)側からJsonを用いてGoogle Script Appsへと送信中、エラーが起きてしまいます。
したいこととしましてはこちらのスクリプトを参考にしてAccessとGスプレッドシートの連携をしているところでした。しかしながら、エラーが出てしまい、いろいろな方法を試しましたが解決に至らなかったため、質問させていただきました。
Jsonファイルにつきましては初心者のため、知恵をお貸しいただけると幸いです。
###エラー文章
Json
1Unexpected token in JSON at position 58969
###エラーは出ないが、Jsonでエラーになるコード
vba
1Private Function ExecuteGASFunction(ByVal access_token As String, _ 2 ByVal script_id As String, _ 3 ByVal function_name As String, _ 4 ByVal parameters As String, _ 5 Optional ByVal dev_mode As String = "false") As String 6 7 'Google Apps Script Execution API呼び出し 8 Dim ret As Variant 9 Dim url As String 10 Dim Json As String 11 Dim dat As Variant 12 Dim jsonstr As Object 13 14 Debug.Print parameters 15 16 'JSONをパースする用の変数 17 Dim doc, jsn 18 'HTMLDocumentを取得 19 Set doc = CreateObject("HtmlFile") 20 'scriptタグを追加 21 doc.Write "<script>document.JsonParse=function (s) {return eval('(' + s + ')');}</script>" 22 23 '変数を初期化 24 ret = "" 25 dat = "{'function':'" & function_name & "','parameters':'" & parameters & "','devMode':" & dev_mode & "}" 26 url = "https://script.googleapis.com/v1/scripts/" & script_id & ":run" 27 28 Debug.Print url 29 30'======================================================================== 31 32 'POST通信でAPIを叩いてデータを取得 33 With CreateObject("WinHttp.WinHttpRequest.5.1") 34 .Open "POST", url, False 35 .setRequestHeader "Content-Type", "application/json; charset=UTF-8" 36 .setRequestHeader "Authorization", "Bearer " & access_token 37 .send dat 38 39 '返ってきた値をもとにデータを処理 40 Select Case .status 41 Case 200 42 'JSONデータを取得する 43 Json = .responseText 44 45 'パース関数でJSONオブジェクトを取得 46 Set jsn = doc.JsonParse(Json) 47 48 ret = jsn.response.result 49 End Select 50 End With 51 52'======================================================================== 53 54 '値を返す 55 ExecuteGASFunction = ret 56End Function
##試したこと
『===』内が間違っているのかと考え、オブジェクトを【WinHttp.WinHttpRequest.5.1】→【msxml2.xmlhttp】へ変更しましたが、特に変わることがなかったです。
エラーよりトークンエラーの可能性があるかと考え、トークンを再取得・再配置しましたが、これも変化がありませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/14 12:13 編集
2021/10/14 12:17 編集
2021/10/14 12:32