Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2019年4月26日金曜日

node-zendeskを使ってみる(Example)


node-zendesk を使ったときの備忘録です

この記事では ReadMe.md にある Example をローカルで実行するところまで行きます



node-zendeskって何?
(という方はおそらくこのページを開いていないと思いますが)

こちらのGitHubのリポジトリで公開されているライブラリを利用させていただきました
https://github.com/blakmatrix/node-zendesk/blob/master/ReadMe.md

zendesk側でオフィシャルサポートはされていないようですが
developersのページで紹介されていました

API Clients / Node.js
https://developer.zendesk.com/rest_api/docs/api-clients/nodejs



ここでは以下4つのステップをやっていきます
  1. ローカルPCに新規フォルダを作る
  2. そのフォルダにindex.jsファイルを作る
  3. node-zendesk をインストールする
  4. node index.js を実行する


STEP1:ローカルPCに新規フォルダ「nodezendeskTest」を作ります



STEP2:そのフォルダに「index.js」ファイルを作って Example のコードを保存します



API TOKENを取得する方法→zendeskのAPI TOKENを取得したい
(以下で必要なのはbase64にエンコードする前のAPI TOKENです)


index.js
var zendesk = require('node-zendesk');

var client = zendesk.createClient({
  username:  'email',
  token:     'API TOKEN',
  remoteUri: 'https://NAME.zendesk.com/api/v2'
});

client.users.list(function (err, req, result) {
  if (err) {
    console.log(err);
    return;
  }
  console.log(JSON.stringify(result[0], null, 2, true));//gets the first page
});



STEP3:
node-zendesk をインストールします

ターミナル
$ npm install node-zendesk


以下のようなWARNが出たら
nodezendeskTest NAME$ npm install node-zendesk
npm WARN NAME@1.0.0 No description
npm WARN NAME@1.0.0 No repository field.

+ node-zendesk@1.4.0
added 62 packages from 112 contributors and audited 304 packages in 11.105s
found 2 vulnerabilities (1 moderate, 1 high)
 run `npm audit fix` to fix them, or `npm audit` for details


指示に従ってnpm audit fix を実行します
:nodezendeskTest NAME$ npm audit fix
npm WARN NAME@1.0.0 No description
npm WARN NAME@1.0.0 No repository field.

updated 1 package in 2.723s
fixed 2 of 2 vulnerabilities in 304 scanned packages


STEP4:node index.js を実行します

ターミナル
$ node index.js

以下のような結果が返ってきました
(値はIDなどを含むため編集しています)
MacBook-Air-8:nodezendeskTest NAME$ node index.js
{
 "id": 000000000000,
 "url": "https://NAME.zendesk.com/api/v2/users/ID.json",
 "name": "NAME",
 "email": "EMAIL",
 "created_at": "DATETIME",
 "updated_at": "DATETIME",
 "time_zone": "Osaka",
 "iana_time_zone": "Asia/Tokyo",
 "phone": null,
 "shared_phone_number": null,
 "photo": null,
 "locale_id": 67,
 "locale": "ja",
 "organization_id": ID,
 "role": "admin",
 "verified": true,
 "external_id": null,
 "tags": [],
 "alias": null,
 "active": true,
 "shared": false,
 "shared_agent": false,
 "last_login_at": "DATETIME",
 "two_factor_auth_enabled": null,
 "signature": null,
 "details": null,
 "notes": null,
 "role_type": null,
 "custom_role_id": null,
 "moderator": true,
 "ticket_restriction": null,
 "only_private_comments": false,
 "restricted_agent": false,
 "suspended": false,
 "chat_only": false,
 "default_group_id": ID,
 "report_csv": true,
 "user_fields": {}
}

以上で
node-zendeskを利用したコードを書いて、Exampleを実行できました

これで最初の壁は越えたので
このあとはチケットの作成、更新、検索なども同じようにできるはずです


手元で試したことを以下の記事に書き残しました
  1. チケットを作成する
  2. チケットを更新する
  3. タグを更新する
  4. カスタムフィールドを更新する
  5. チケットの情報を取得する
  6. カスタムフィールドの値を検索する
  7. カスタムフィールドの値を検索してチケットを更新する

node-zendesk を使わずにGASで直接zendesk API を利用する場合


参考

zendesk developers / API Clients / Node.js

node-zendesk / ReadMe.md
(引数にある cb はcallbackFunctionの略かな)

Latest post

Googleドキュメントに見出しを追加したい

今回の例では、ドキュメントの末尾に「見出しD」 を追加します。 見出しA, B, C, Dのスタイルは、見出し3 ( HEADING3 ) に設定しています。  下記Code.gsの  GOOGLE_DOCUMENT_URL を設定して  addHeadingToEnd()  を...