Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Pleasanter

PleasanterのAPIをPythonからコールするサンプルをご紹介

投稿日:2023年5月10日 更新日:

 

<目次>

(1) PleasanterのAPIをPythonからコールするサンプルをご紹介
 (1-0) やりたいこと
 (1-1) サンプルサイト
 (1-2) サンプルプログラム
 (1-3) 結果例
 (補足) エラー「SSLCertVerificationError~中略~unable to get local issuer certificate」が出た時の対処

(1) PleasanterのAPIをPythonからコールするサンプルをご紹介

(1-0) やりたいこと

・PleasanterのAPIをPythonのプログラムからコールしたい。
⇒そのやり方の概要とサンプルプログラムをご紹介します。
⇒証明書エラーが出た際の対処もご紹介します。

(1-1) 構文

今回使用したサンプルサイト(期限付きテーブル)を添付します。
サンプルプログラムとセットで動かしてみたい方は、ご自身の環境にインポートして頂けたらと思います。

(1-2) サンプルプログラム

今回はレコード作成(https://pleasanter.org/manual/api-record-create)のAPIをサンプルとしてご紹介します。
 
(サンプルプログラム)
import requests
import pandas as pd
import json

def main():

    # 開発者向け機能:API:テーブル操作:レコード作成 を呼び出し、レスポンスを取得する
    body = {
        "ApiVersion":1.1,
        "ApiKey":"xxxxxxxxxxxxxxx",
        "Title":"APIコールテスト2",
        "Status":"100",
        "CompletionTime":"2022/12/28",
        "ClassHash":{
            "ClassA":"100",
            "ClassB":"問い合わせ",
            "ClassC":"業務システム",
            "ClassD":"人事部",
            "ClassE":"開発x1部"
            }
        }
    final_url = "https://demo.pleasanter.org/api/items/7185230/create"

    headers = {'Content-Type': 'application/json','charset':'utf-8',"User-Agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"}
    response = requests.post(final_url, headers=headers, json=body)
    print(response)    

if __name__ == "__main__":
     main()
(表)
body HTTPリクエストのボディ部。
リクエストの中身(実際にPleasanterの明細を構成するデータ)が入っています。
https://rainbow-engine.com/http-request-structure/

Pleasanterの場合、「分類A」「分類B」・・・といった項目はClassHashというJSON形式のデータで送ります。
{
~中略~
       “ClassHash”:{
            “ClassA”:”100″,
            “ClassB”:”問い合わせ”,
            “ClassC”:”業務システム”,
            “ClassD”:”人事部”,
            “ClassE”:”開発x1部”
            }
~中略~
}

それ以外の標準で固有の名前がついている項目(”Status”や”CompletionTime”)はネストなしでKey-Valueをセットします。
{
~中略~
        “Status”:”100″,
        “CompletionTime”:”2022/12/28″,
~中略~
}

headers HTTPリクエストのヘッダー部
リクエストのメタデータ(Content-Type、エンコードなど)を指定します。
https://rainbow-engine.com/http-request-structure/

Pleasanterの場合、下記はどのAPIでも共通で指定します。
‘Content-Type’: ‘application/json’
‘charset’:’utf-8′

(補足)
APIキーの取得は、画面右上の自分の名前をクリック⇒「API設定」から取得します。
(図121)

(1-3) 結果例

正常終了した場合の結果例を掲載します。
 
・コンソール
<Response [200]>
 
(図131)コンソール
⇒ステータスコード200の応答が返ってきた
 
・画面
(図132)画面
⇒明細が作成された

(補足) エラー「SSLCertVerificationError~中略~unable to get local issuer certificate」が出た時の対処

Pythonのローカルで実行する場合、必要な証明書の情報がクライアント側に足りていないため、下記のような証明書の検証エラーが発生する場合があります。

エラーメッセージ

requests.exceptions.SSLError: HTTPSConnectionPool(host='demo.pleasanter.org', port=443): Max retries exceeded with url: /api/items/7185230/create (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)')))
 
(図211)

対処

下記の記事に従って対処する事で解消する見込みがあります。

Adsense審査用広告コード


Adsense審査用広告コード


-Pleasanter
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Pleasanter項目の活性制御のやり方について(スクリプト)

  <目次> (1) Pleasanter項目の活性制御のやり方について(スクリプト)  (1-1) やりたいこと  (1-2) 設定箇所  (1-3) パターン①:ステータスに応じて「静的 …

PleasanterのAPIの使い方&レコード作成の例をご紹介

  <目次> (1) PleasanterのAPIの使い方&レコード作成の例をご紹介  やりたいこと  (1-0) 概要  (1-1) STEP1:テスト用サイトのインポート  (1-2) …

  • English (United States)
  • 日本語
Top