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

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

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

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

解決済

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

TakuyaOsawa
TakuyaOsawa

総合スコア0

freeeAPI

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

1回答

0評価

0クリップ

458閲覧

投稿2021/06/15 02:17

前提・実現したいこと

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

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

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

該当のソースコード

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

GAS

function journals_request() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName( "仕訳帳" ); sheet.clear(); var freeeApp = getService(); var accessToken = freeeApp.getAccessToken(); var requestUrl = "https://api.freee.co.jp/api/1/journals?download_type=generic&company_id=XXXXXXX&visible_tags[]=all"; var headers = { "Authorization" : "Bearer " + accessToken }; var options = { "method" : "get", "headers" : headers }; var JSON_response = UrlFetchApp.fetch( requestUrl , options ).getContentText(); var Data = JSON.parse( JSON_response ); var Target = Data.journals; var id = Target.id; //8秒後にステータス確認 ss.toast('仕訳帳を要求中', '実行中', 10); Utilities.sleep(800); journals_status(id); } function journals_status(id) { var freeeApp = getService(); var accessToken = freeeApp.getAccessToken(); var requestUrl = "https://api.freee.co.jp/api/1/journals/reports/{id}/status?company_id=XXXXXXX"; var requestUrl = requestUrl.replace( "{id}" , id ); var headers = { "Authorization" : "Bearer " + accessToken }; var options = { "method" : "get", "headers" : headers }; var JSON_response = UrlFetchApp.fetch( requestUrl , options ).getContentText(); var Data = JSON.parse( JSON_response ); var Target = Data.journals; var status = Target.status; if(status !== "uploaded") { Utilities.sleep(500); journals_status(id); } else { journals_download(id); } } function journals_download(id) { var freeeApp = getService(); var accessToken = freeeApp.getAccessToken(); var requestUrl = "https://api.freee.co.jp/api/1/journals/reports/{id}/download?company_id=XXXXXXX"; var requestUrl = requestUrl.replace( "{id}" , id ); var headers = { "Authorization" : "Bearer " + accessToken }; var options = { "method" : "get", "headers" : headers }; var response = UrlFetchApp.fetch( requestUrl , options ).getBlob().getDataAsString("Shift_JIS"); var csv = Utilities.parseCsv(response); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName( "仕訳帳" ); sheet.getRange( 1 , 1 , csv.length , csv[0].length ).setValues( csv ); ss.toast('仕訳帳のダウンロードが完了しました', '完了', 3); }

試したこと

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

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

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

hentaiman
hentaiman

2021/06/15 02:59

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

2021/06/15 03:49

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

2021/06/15 04:34

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

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

freeeAPI

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