みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
MacOS13.5(Ventura)・FileMaker18.19
FileMakerのURLから挿入を使ってワードプレスへ記事を投稿したいですが、うまくいきません。
-----------------------------------------
Macのターミナルを開いて下記を実行してみたら記事ができましたのでサーバ側が対応していないことはないと思っています。
curl --user ★user★:★アプリケーションpassword★ \
-X POST \
'https://ワードプレスのURL.com/wp-json/wp/v2/posts/'\
-H "Content-Type: application/json" \
-d '{"title": "MyTitle001", "content": "MyBody", "status": "publish"}'
-----------------------------------------
Clarisにあった資料からファイルメーカー用に整形してみたのですがうまくいきませんでした。
URLから挿入[オプション]の
URLを指定に (URLを自動的にエンコードにはチェック)
"https://ワードプレスのURL.com/wp-json/wp/v2/posts/"
URLから挿入[オプション]の
cURL オプションの指定に
"--user ★user★:★アプリケーションpassword★" &
" -X POST" &
" -H \"Content-Type: application/json\" "&
" -d \"{\"title\": \"MyTitle001\", \"content\": \"MyBody\", \"status\": \"publish\"}\" "
どこか入力の場所が違うとか文法が違うとかの原因でしょうか?
Offline
とりあえず、"&"をぬいて試してみてください。
```
"--user ★user★:★アプリケーションpassword★
-X POST
-H \"Content-Type: application/json\"
-d \"{\"title\": \"MyTitle001\", \"content\": \"MyBody\", \"status\": \"publish\"}\""
```
これでできたら、&を使って、変数や、フィールドに置き換えていきましょう。
>" -d \"{\"title\": \"MyTitle001\", \"content\": \"MyBody\", \"status\": \"publish\"}\" "
これだと計算結果が
-d "{"title":"~~~
のようになりますから、
-d "{"
でデータが終わってしまいますよね。
\でエスケープだったと思いますが、そうだとすれば
" -d \"{\\\"title\\\":~~~
のようになります。
以下とか試してみては。
"-d '{\"title\": \"MyTitle001\", \"content\": \"MyBody\", \"status\": \"publish\"}'"
Offline
参考と考察ありがとうございます。
提案いただいた内容を3日間いろいろ試してみたのですがどうも動作が確認できませんでした。
行き詰まってしまったので他のコマンドも試してみて少し前に進めました。のでご報告させてください。
-------------------------------------
Macターミナルにて 記事削除 のcurl OK
curl -X DELETE --user ★user★:★アプリケーションpassword★ https://ワードプレスのURL.com/wp-json/wp/v2/posts/記事ID
を
ファイルメーカーで
・URLから挿入[オプション]の
URLを指定に https://ワードプレスのURL.com/wp-json/wp/v2/posts/記事ID
URLから挿入[オプション]の
・cURL オプションの指定に
"-X DELETE --user ★user★:★アプリケーションpassword★"
でFMPから削除ができました!
-------------------------------------
次に 記事の更新 を試してみました。
記事更新 Macターミナルにて 下記でできました。
curl --user ★user★:★アプリケーションpassword★ \
-X POST \
'https://ワードプレスのURL.com/wp-json/wp/v2/posts/記事ID'\
-H "Content-Type: application/json" \
-d '{"title": "MacターミナルでAPIで更新", "content": "MyBodyも更新", "status": "publish"}'
更新できました!
ファイルメーカーに変換して
・URLから挿入[オプション]の
URLを指定に https://ワードプレスのURL.com/wp-json/wp/v2/posts/記事ID
URLから挿入[オプション]の
・cURL オプションの指定に
"
-X POST --user mediapro:U3lgI5ZGbKuQuN5gepVgitVr -H Content-Type: application/json -d \"{\"title\": \"題名更新したい\", \"content\": \"Bodyも更新したい\", \"status\": \"publish\"}\"
"
としましたら、更新はされないものの シンタックスエラーもなしでレスポンスが帰ってきました。
-d からのデータ部分が渡せていない(消失?)ような気が
ちなみに Content-Type: application/json をFMP用に \"Content-Type: application/json\" と記入すると
{
"code" : "rest_invalid_json",
"data" :
{
"json_error_code" : 4,
"json_error_message" : "Syntax error",
"status" : 400
},
"message" : "無効な JSON ボディが渡されました。"
}
となったので \" を省いて操作しました。
Offline
>-X POST --user mediapro:U3lgI5ZGbKuQuN5gepVgitVr -H Content-Type: application/json -d \"{\"title\": \"題名更新したい\", \"content\": \"Bodyも更新したい\", \"status\": \"publish\"}\"
これだと
>-H Content-Type: application/json
のところにスペースがあるのでーHの値が「Content-Type:」だけになってしまいます。
指摘済みですが、-dの値は-d \"{\" で終わっています。
-dの値はエスケープがややこしくなるので、変数に入れて渡すのが分かりやすかった気がします。
Macなので#4のシングルクオートでも行けるかもしれませんが、Windowsではダブルでないとだめだったと思います。(FM18ぐらいまで。その後のバージョンでは試してません。)
一旦、ありがとうございます。
少し別の方法も考えてみたいと思います。
いろいろとありがとうございます。
Offline
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 521.14 KiB (Peak: 526.05 KiB) ]