Ghost CMS API への R インターフェイス
<p>組み込みの管理 API を使用して、R からローカルの Ghost CMS インスタンスに接続しようとしています。さまざまな言語での接続方法に関する優れたドキュメント (https://ghost.org/docs/admin-api/#token-authentication) がありますが、残念ながら R に関するドキュメントはありません。次のコードを作成しましたが、残念ながらテスト記事を作成しようとすると 401 エラーが発生します。ご協力をよろしくお願いいたします。 <br /><br />R コード:</p><p><strong></strong></p>
<pre class="brush:php;toolbar:false;">api_admin_key <-
「xxxxxx:yyyyyyyyyyyyyyy」
api_admin_key <- unlist(strsplit(x = api_admin_key, Split = ":"))
names(api_admin_key) <- c("id", "secret")
# ヘッダーとペイロードを準備する
iat <- as.integer(Sys.time())
ヘッダー <-
list(alg = 'HS256'、typ = 'JWT'、kid = api_admin_key[["id"]])
# トークンを作成します(デコードシークレットを含む)
ペイロード <-
jose::jwt_claim(iat = iat,
exp = iat 5 * 60、
aud = '/admin/')
トークン <-
jose::jwt_encode_hmac(
クレーム = ペイロード、
Secret = charToRaw(api_admin_key[["secret"]]),
サイズ = 256、
ヘッダー = ヘッダー
)
# 認証されたリクエストを送信して投稿を作成します
URL <- 'http://localhost:2368/ghost/api/admin/posts/'
headers <- c('Authorization' = past("Ghost", token))
body <- list(posts = list(
"タイトル" = 'Hello World',
"html" = "<p>投稿コンテンツ。作業中です...</p>",
「ステータス」=「公開済み」
)
)
httr::POST(url,
体=体、
エンコード = "json"、
httr::add_headers(.headers = headers))</pre>
<p><br /></p>