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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1520閲覧

GASで公開APIを利用したい。

GAS_

総合スコア8

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2018/08/30 10:00

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
初心者です。知識が乏しいため、情報などうまく伝えられなかったら申し訳ございませんが、
よろしくお願いいたします。
Google Apps Script(GAS)で、
サテライトオフィス・ワークフロー for G Suite 公開APIを使用し、トークンの情報を取得したい。

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

エラーメッセージ

UrlFetchApp.fetchでトークン取得処理を行いましたが、取得エラーとなり以下のエラーメッセージが発生します。 公開APIで共通のResponseのパラメータが、エラーとなり、以下の情報が返されます。 [18-08-30 18:43:32:163 JST] {"code": 100, "error_code": "invalid_api_key", "error_msg": ""} ### 該当のソースコード Google Apps Script(GAS) ソースコード

// APIトークンの取得
function getToke(){
var apiUrl = 'https://sateraito-apps-workflow.appspot.com/〇〇〇/api/public/auth';

// リクエストの中身
var Request = {
"method" : "POST",
"Content-Type": "application/json",
"api_key": "〇〇〇〇",
"impersonate_email": "〇〇〇〇"
}

var res = UrlFetchApp.fetch(apiUrl,Request);
txt = res.getContentText();

Logger.log(txt);

}

試したこと

スクリプトの何度か書き換え実行しましたら、上記エラーメッセージしか出てきません。

補足情報(FW/ツールのバージョンなど)

公開APIの情報
https://sites.google.com/a/sateraito.jp/sateraito-dounyuu/Home/wakufuro-ji-neng/api

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

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

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

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

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

guest

回答1

0

ベストアンサー

サポート窓口についてで直接聞いた方が良さそうな内容ですが。

APIのプロトコル、インタフェース、URL

APIのプロトコル、インタフェース、URL
・HTTPメソッドはPOST(KeyValue型)です。各パラメータごとにKeyとValueをPOSTしてください。
POST(KeyValue型)

とのことなので、クエリ文字列形式でpayload(body)に設定すればよいのではないでしょうか。

UrlFetchApp#fetch

1, JSON形式で送信する訳ではないので、"Content-Type": "application/json",は不要。
2, GASはURLSearchParams インターフェイスを実装していないので、QueryString(クエリ文字列)を作成する関数を作成。

JavaScript

1function QueryString(dict) { 2 var keys = []; 3 for(var k in dict) { 4 keys.push(k + '=' + encodeURI(dict[k])); 5 } 6 return keys.join("&"); 7} 8function getToken(){ // getToke→getToken 9 var apiUrl = 'https://sateraito-apps-workflow.appspot.com/〇〇〇/api/public/auth'; 10 var params = { 11 "api_key": "XXXXX", 12 "impersonate_email": "example@example.com" 13 }; 14 var Request = { 15 "method" : "POST", 16 'payload' : QueryString(params) 17 } 18 var res = UrlFetchApp.fetch(apiUrl, Request); 19 txt = res.getContentText(); 20 21 Logger.log(txt); 22}

投稿2018/08/30 11:30

編集2018/08/30 20:28
umyu

総合スコア5846

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

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

GAS_

2018/08/30 12:54

ありがとうございます。 こんな短い時間で回答いただけるとは思いませんでした。 実行したところ、完璧に動きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問