Community

コミュニティをご利用の際は 【ガイドライン】を確認・同意いただいた上でご利用ください。

  • 投稿

    アバターtakebayashi

    APIコール時のエラーについて

    お世話になっております。

    POSTリクエストを送信した際に、エラーコード「401」が発生する原因についてどういった場合に発生するのでしょうか。

    また、勘定科目作成のAPIを送信すると、以下エラーが発生します。
    ===エラー内容==================
    実行時エラー’-2146697208 (800c0008)’:
    指定されたリソースのダウンロードに失敗しました。」
    ============================

    このエラーについて原因や解消方法をご存知でしょうか。

    回答

    アバターyakumo

    アプリ、アクセストークンを発行しているユーザーの権限は適切に付与されてますか?

    401 なので権限がないのかと思います。

    権限がない場合付与後、再度認可コードの発行から行う必要もあります。

    > ===エラー内容==================
    > 実行時エラー’-2146697208 (800c0008)’:
    > 指定されたリソースのダウンロードに失敗しました。」
    > ============================

    ぱっとみAPI関係なく実行するプログラムが出しているエラーかと思います。
    これだけでは判断は難しいのですが、実装やリクエストの詳細を教えていただけるとわかるかもしれません。

    アバターtakebayashi

    ご確認ありがとうございました。

    >401 なので権限がないのかと思います。
    確認致します。
    ご教示ありがとうございました。

    >ぱっとみAPI関係なく実行するプログラムが出しているエラーかと思います。
    >これだけでは判断は難しいのですが、実装やリクエストの詳細を教えていただけるとわかるかもしれません。
    以下ソースコードの抜粋です。
    リクエスト先のエンドポイントは「https://api.freee.co.jp/api/1/manual_journal」です。

    ■振替伝票の貸借1行目生成
    details = _
     “{” & _
      “””entry_side””:””” & entrySide & “””,” & _
      “””tax_code””:” & taxCode & “,” & _
      “””account_item_id””:” & accountItemId & “,” & _
      “””amount””:” & amount & “,” & _
      “””vat””:” & vat & “,” & _
      “””partner_id””:” & partnerId & “,” & _
      “””item_id””:” & itemId & “,” & _
      “””section_id””:” & sectionId & “,” & _
      “””tag_ids””:[” & tagIds & _
     “]}”

    ■振替伝票の貸借2行目以降生成(100行まで)
    details = details & _
     “,{” & _
     “””entrySide””:””” & .Cells(t, 5) & “””,” & _
     “””taxCode””:” & .Cells(t, 6) & “,” & _
     “””accountItemId””:” & .Cells(t, 7) & “,” & _
     “””amount””:” & .Cells(t, 8) & “,” & _
     “””vat””:” & .Cells(t, 9) & “,” & _
     “””partnerId””:” & .Cells(t, 10) & “,” & _
     “””itemId””:” & .Cells(t, 11) & “,” & _
     “””sectionId””:” & .Cells(t, 12) & “,” & _
     “””tagIds””:[” & .Cells(t, 13) & _
     “]}”

    ■振替伝票のAPI用JSON生成
    accountItemsRequestBody = _
     “{” & _
      “””company_id””:” & companyId & “,” & _
      “””issueDate””:” & issueDate & “,” & _
      “””adjustment””:” & adjustment & “,” & _
      “””details””:[” & _
      details & _
     “””]}”

    ■API送信処理
    With msxml2Object
     .Open “POST”, ACCOUNT_ITEMS_REQUEST_URL, False
     .setRequestHeader “Authorization”, “Bearer ” & AccessToken
     .setRequestHeader “Content-Type”, “application/json”
     .send JsonConverter.ConvertToJson(accountItemsRequestBody)   ※
    エラーは※の行で発生しています。

    また、生成されたJSONは以下となります。
    値はサンプル値に変えています。
    {“company_id”:3333333,”issueDate”:”2020-04-01″,”adjustment”:,”details”:[{“entry_side”:”debit”,”tax_code”:1010,”account_item_id”:1009,”amount”:1632,”vat”:163,”partner_id”:22222222,”item_id”:1010,”section_id”:1162,”tag_ids”:[12064734]},{“entrySide”:”credit”,”taxCode”:1000,”accountItemId”:1157,”amount”:1795,”vat”:0,”partnerId”:11111111,”itemId”:1037,”sectionId”:1162,”tagIds”:[12064734]}]}

    以上、ご確認の程よろしくお願いいたします。

    アバターyakumo

    エラー内容で検索した限りやはり freee 側の問題の可能性は薄く感じます。
    社内のネットワーク (DNS) 等は問題ないでしょうか?
    異なる回線やDNSを8.8.8.8等にして試してみてはいかがでしょうか?
    ※ ぐぐったところ該当エラーは証明書の不一致等で起きるケースがあるようです。

    おそらく VBA?で書かれていると思うのですが、個別の言語・ライブラリの挙動すべてはさすがに追えないので、
    VBA専門のエンジニアやMSのサポートの方が答えが早く出るかもしれません。

    freee のサーバーからレスポンスが返されている場合は、
    リクエスト内容 (変数展開されたコードではなく実際に通信として流れる形式)やレスポンス内容を調べることで解決にいたれるかなと思います。

    アバターtakebayashi

    ご確認ご回答ありがとうございました。

    社内ネットワークが原因で該当のエラーが発生していたようです。

    社外ネットワークに接続して実行を行うことでfreee APIからレスポンス(400)を受け取れるようになりました。

     

    調査頂きありがとうございました。