1. TOP
  2. Zohoクリエーター
  3. Deluge Script
  4. Zoho CRM から WordPressのREST API を使ってコンテンツをPOSTする方法

Zoho CRM から WordPressのREST API を使ってコンテンツをPOSTする方法

Deluge Script


Zoho CRMからWordPressに投稿してみた!

Zoho CRMのカスタム関数を使ってWordPressに投稿をしてみました。今回は社内の備忘録として、残すような形ですが、参考になる方がいれば幸いです。
WordPressは、RES API version 2.0となります。加えて、Deluge Scriptも、2020年10月時点で最新となります。

今回書いたスクリプトはこれ

GASとかでも可能とは思うが、今回サーバーを自らで用意することなく、このようなことがZoho内部だけで実現できることが改めてすごいと思った。

/*WPのユーザーIDとパスワード */
user_id = "ユーザーID";
password = "パスワード";
page_id = 443;

/*WPの投稿(既存)ページ */
end_point_url = "https://あなたのホームページ/wp-json/wp/v2/posts/" + page_id;
/*WPの固定(既存)ページ */
end_point_url = "https://あなたのホームページ/wp-json/wp/v2/pages/" + page_id;
baseEncoded = zoho.encryption.base64Encode(user_id + ":" + password);

/*WPタイトル */
title = "テスト";
/*WPの本文*/
content = "Hello World From Zoho";
/*WPのステータス*/
status = "publish";

/*WPをポストする内容の配列 */
payload = {'title':title,'content':content,'status':status};
/*WPのベーシック認証*/
header = {"Authorization":"Basic " + baseEncoded};
/*Deluge Scriptでは、invokeurlを利用*/
response = invokeurl
[
	url :end_point_url
	type :PUT
	parameters:payload
	headers:header
];
/*201だとOK. */
info response;
return response;

WPのユーザーIDとパスワード

WP側のユーザーIDは、ログインする時に使うユーザーIDでOKだが、パスワードは以下のものダウンロードして別途パスワード(API用パスワード)を発行する
必要がある(参考ページはこちら)。

サイト(WP)へのアクセス(エンドポイント)

サイト(WP)へのアクセスするためのエンドポイントは以下の通りだ。

/*WPに新規投稿(投稿ページ)*/
end_point_url = "https://あなたのホームページ/wp-json/wp/v2/posts/"; 


/*WPに既存ページに投稿(投稿ページ)*/
page_id = 443;
end_point_url = "https://あなたのホームページ/wp-json/wp/v2/posts/" + page_id;

ページIDは各種ページのURLからでも確認ができる。
スクリーンショット 2020-10-07 14.23.08

IDのみではなく、検索なども可能(参考ページはこちら

WPのパラメーターはこちら

/*WPタイトル */
title = "テスト";
/*WPの本文*/
content = "Hello World From Zoho";
/*WPのステータス*/
status = "publish";
/*WPをポストする内容の配列 */
payload = {
   /*記事のタイトル*/
   'title':title,
   /*記事の本文*/
   'content':content,
   /*記事のステータス()*/
   'status':status
};

記事のステータスは、publish(公開), future(公開予約), draft(下書き), pending(非公開), private(限定公開)から一つを選択。
その他はこちらを参照

WPのベーシック認証の方法

baseEncoded = zoho.encryption.base64Encode(user_id + ":" + password);
header = {"Authorization":"Basic " + baseEncoded};

Deluge ScriptでのBase64Encodeの書き方は、zoho.encryption.base64Encode(ユーザーID:パスワード)

ZohoからWPへデータ送信


response = invokeurl
[
	url :end_point_url
	type :POST
	parameters:payload
	headers:header
];

ここの方法が最後までわからず、Zohoの本社テックの人に聞いてみた。
invoke urlの書き方はこちら。パラメータの詳細もあります。

最初見た時、「,」(コンマ)がないから忘れたのかなとおもいきや、コンマは不要です。

ざっくりでしたが、いかがでしょうか?
また、詳細がわかってこればコンテンツを拡充させていきます。

Getする場合はこんな感じ

あと、Getする場合はこんな感じです。本社のテックの人が送ってくれました。


password = "mypassword";
username = "myusername";
baseEncoded = zoho.encryption.base64Encode(username+":"+password);
header = {
      "Authorization" : "Basic "+baseEncoded
      };
url="https://test.com";
response=invokeurl[
url:url
/*ここがGETに変わります*/
type:GET
headers:header
];
info response;

これで確かに、GETできました。
Zoho CRMの項目とかにもデータを入れれそうな感じがしました。

何がご質問があれば、お気軽にご連絡ください。