質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
freeeAPI

freeeAPIは「会計freee」「人事労務freee」など、freeeが提供する各サービスに実装されている RESTful API です。

Q&A

解決済

1回答

2293閲覧

会計freee 仕訳帳APIでスプレッドシートにデータ出力すると環境依存文字が文字化けしてしまう

TakuyaOsawa

総合スコア0

freeeAPI

freeeAPIは「会計freee」「人事労務freee」など、freeeが提供する各サービスに実装されている RESTful API です。

0グッド

0クリップ

投稿2021/06/15 02:17

前提・実現したいこと

freeeAPIを利用してスプレッドシートに仕訳帳データを出力しようとしています。
出力は出来たのですが、依存文字(㈱など)が含まれる文字列が文字化けしているため、
文字化けが発生しない状態にしたいです。

発生している問題・エラーメッセージ

依存文字(㈱など)が含まれる文字列が文字化けしている

該当のソースコード

freee公式で公開されていたサンプルソースをほぼ引用しています。

GAS

1 2function journals_request() { 3 4 var ss = SpreadsheetApp.getActiveSpreadsheet(); 5 var sheet = ss.getSheetByName( "仕訳帳" ); 6 sheet.clear(); 7 8 var freeeApp = getService(); 9 var accessToken = freeeApp.getAccessToken(); 10 var requestUrl = "https://api.freee.co.jp/api/1/journals?download_type=generic&company_id=XXXXXXX&visible_tags[]=all"; 11 var headers = { "Authorization" : "Bearer " + accessToken }; 12 var options = 13 { 14 "method" : "get", 15 "headers" : headers 16 }; 17 18 var JSON_response = UrlFetchApp.fetch( requestUrl , options ).getContentText(); 19 var Data = JSON.parse( JSON_response ); 20 var Target = Data.journals; 21 var id = Target.id; 22 23 //8秒後にステータス確認 24 ss.toast('仕訳帳を要求中', '実行中', 10); 25 Utilities.sleep(800); 26 journals_status(id); 27} 28 29function journals_status(id) { 30 31 var freeeApp = getService(); 32 var accessToken = freeeApp.getAccessToken(); 33 var requestUrl = "https://api.freee.co.jp/api/1/journals/reports/{id}/status?company_id=XXXXXXX"; 34 var requestUrl = requestUrl.replace( "{id}" , id ); 35 36 var headers = { "Authorization" : "Bearer " + accessToken }; 37 var options = 38 { 39 "method" : "get", 40 "headers" : headers 41 }; 42 43 var JSON_response = UrlFetchApp.fetch( requestUrl , options ).getContentText(); 44 var Data = JSON.parse( JSON_response ); 45 46 var Target = Data.journals; 47 var status = Target.status; 48 49 if(status !== "uploaded") 50 { 51 Utilities.sleep(500); 52 journals_status(id); 53 } 54 55 else 56 { 57 journals_download(id); 58 } 59 60} 61 62function journals_download(id) { 63 64 var freeeApp = getService(); 65 var accessToken = freeeApp.getAccessToken(); 66 var requestUrl = "https://api.freee.co.jp/api/1/journals/reports/{id}/download?company_id=XXXXXXX"; 67 var requestUrl = requestUrl.replace( "{id}" , id ); 68 69 var headers = { "Authorization" : "Bearer " + accessToken }; 70 var options = 71 { 72 "method" : "get", 73 "headers" : headers 74 }; 75 76 var response = UrlFetchApp.fetch( requestUrl , options ).getBlob().getDataAsString("Shift_JIS"); 77 var csv = Utilities.parseCsv(response); 78 79 var ss = SpreadsheetApp.getActiveSpreadsheet(); 80 var sheet = ss.getSheetByName( "仕訳帳" ); 81 sheet.getRange( 1 , 1 , csv.length , csv[0].length ).setValues( csv ); 82 83 ss.toast('仕訳帳のダウンロードが完了しました', '完了', 3); 84 85} 86

試したこと

下記の部分でShift_JISに変換されることで文字化けが発生しないと思ったのですが、されているので
UTF-8やAsciiなどの文字コードへ変更しましたが結果は変わらず or 全て文字化けしてしまう結果でした。

var response = UrlFetchApp.fetch( requestUrl , options ).getBlob().getDataAsString("Shift_JIS");

同様の事象がないか検索しましたが見つけることができず、こちらで質問させて頂きました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2021/06/15 02:59

freeeのサポートに聞いた方が良いのではないですか 余程ヘンテコな処理してないならfreeeにとっても有益な有難い問い合わせと思われるはず freeeのサポートデスクがサッパリ技術に疎い一般事務員アルバイターみたいな人なら期待はできませんけど
TakuyaOsawa

2021/06/15 03:49

hentaimanさん アドバイスありがとうございます。 freee公式にてteratailを活用したQ&Aを提案されていたのですが、 おっしゃる通りサポート問い合わせの方が適切かもしれませんね。 今回は自己解決できたので、次回からは問い合わせも検討したいと思います。 ご意見いただきありがとうございました。
hentaiman

2021/06/15 04:34

> freee公式にてteratailを活用したQ&Aを提案されていたのですが マジですか freeeってひっでえクソサービスだな こっちはfreeeから金もらってないぜ
guest

回答1

0

自己解決

「windows-31j」を文字コードに指定することで解決することができました。

投稿2021/06/15 03:45

TakuyaOsawa

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問