初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-02-14 13:34:30

wook
Member

cURLの設定(続き)

お世話になります。
FMP19.6 Win10です。

再び「URLから挿入」についての質問です。

curl -X GET -H 'Content-Type: application/json' -H 'Accept: application/json' -H "Authorization: Bearer ACCESS_TOKEN"  "https://app.XXX.com/public/API"

はWindowsのコマンドラインから実行できていて、サービス元サーバーからデータが取得できています。
ACCESS_TOKENは別スクリプトでサービス元から取得したaccess_tokenで、FMP内部のフィールドで保存してる変数です。
ここで上記をFMPの「URLから挿入」で実行しようとしていますがうまく動作できません。
設定は
変数$urlに "https://app.XXX.com/public/API"
変数$authに" "Authorization: Bearer "& ユーティリティ::access_token &" " "https://app.XXX.com/public/API"  "
ターゲット に$$json
URLを指定 に$url
cURLは
"
-X GET
-S
-H "Content-Type: application/json"
-H "Accept: application/json"
-H @$auth
"
と設定しています。
エラーはHTMLで返ってきていて
<html><head><title>Object moved</title></head><body>

<h2>Object moved to <a href="/GenericError.htm?aspxerrorpath=/public/v1/Client">here</a>.</h2>

</body></html>
となっており、正しく送れていない感じです(すみませんこのあたり初心者で良く分かりません)

curlのFMPへの落とし込みに問題あるでしょうか?
アドバイス宜しくお願いします。

Offline

#2 2023-02-14 13:41:19

himadanee
Guest

Re: cURLの設定(続き)

https://help.claris.com/ja/pro-help/con … tions.html
を見ると、-Hは変数構文を使えないようですが、どうですか。

#3 2023-02-14 14:09:56

wook
Member

Re: cURLの設定(続き)

himadanee wrote:

https://help.claris.com/ja/pro-help/con … tions.html
を見ると、-Hは変数構文を使えないようですが、どうですか。

ちょっとそんな気もしていたのですが・・
じゃぁどうするか??が知りたいです。
従来のアプリケーションでのインプリを見てもaxiosでheaderにaccess_tokenを張り付けていますもんで
出来ないとなると困ってしまいます。

Offline

#4 2023-02-14 15:24:38

himadanee
Guest

Re: cURLの設定(続き)

-H "Accept: application/json"
と同じように直接値を書けばいいのでは?
ACCESS_TOKENに"が含まれる場合が問題ですが...

と思って見直したら、
cURLは
"
-X GET
-S
-H "Content-Type: application/json"
-H "Accept: application/json"
-H @$auth
"
これは"の対応がおかしいですよね?
cURLは
""の中にある"はでエスケープする必要があるので
"
-X GET
-S
-H "Content-Type: application/json"
-H "Accept: application/json"
-H @$auth
"
となるはずでは?
変数が使えないのを直せば
"
-X GET
-S
-H "Content-Type: application/json"
-H "Accept: application/json"
-H "Authorization: Bearer ACCESS_TOKEN"
"
ですが

あ、あとトークンにが含まれてる場合もエスケープして\になります。

#5 2023-02-14 15:27:06

himadanee
Guest

Re: cURLの設定(続き)

あらら、このサイトの仕様で(?)円マークを書いたのが消えてしまって意味不明な投稿になってしまった...
質問の文章もそうだったんですね...

#6 2023-02-14 15:35:13

himadanee
Guest

Re: cURLの設定(続き)

そこを推測してもう一度見直すと、

変数$authに" "Authorization: Bearer "& ユーティリティ::access_token &" " "https://app.XXX.com/public/API"  "

ここの最後のURL部分は不要です。(「URLを指定 に$url」 の方で指定している)

で、変数値が””で囲んだ文字列になってるなら、そのまま連結すればいいので
~~~~
-H " & $auth
でしょうね。

トークンに円や”が含まれる可能性があるなら、Substitute()で置換する必要があると思いますが、めんどうです。
”は円”円”に置換するのかな?円は円円円円?

#7 2023-02-14 15:46:08

wook
Member

Re: cURLの設定(続き)

あ、最初の投稿でcURLの中は全部エスケープしているのに投稿を見ると消えておりますね
$authをべた書きにしても結果は同じでした
-H "Authorization: Bearer XXXX"
と送らないとダメなのでXXXXを取得済みの変数にどこかで置き換えないといけないのですよね

Offline

#8 2023-02-14 16:14:04

himadanee
Guest

Re: cURLの設定(続き)

XXXXと書いておいてSubstituteしてもいいですけど
いずれにしても、その文字列にどういう文字があるかで変わってきます。
改行は入ってないだろうから、変数は使わず
~~~
-H " & Quote("Authorization: Bearer " & ユーティリティ::access_token)
でうまくいくかなあ?

#9 2023-02-14 16:45:00

wook
Member

Re: cURLの設定(続き)

himadanee wrote:

-H " & Quote("Authorization: Bearer " & ユーティリティ::access_token)
でうまくいくかなあ?

これ、ひょっとしてエスケープ入ってます?

GETする際にトークンをヘッダに載せて送るのは普通の所作だと思うのですが、みんなどうしているんでしょう?

Offline

#10 2023-02-14 17:02:45

himadanee
Guest

Re: cURLの設定(続き)

エスケープはQuote関数にまかせているので、書いているとおりです。
コマンドラインではそのまま書いてるということなので、実際にはエスケープ必要な文字は無いわけでしょうけど

最初の発言でエラーメッセージが「/public/v1/Client」に移動したのでそっちにアクセスしろ、と言ってるようなんですが、URLは合ってるんですよね...

#11 2023-02-14 18:39:54

wook1613
Guest

Re: cURLの設定(続き)

himadanee wrote:

最初の発言でエラーメッセージが「/public/v1/Client」に移動したのでそっちにアクセスしろ、と言ってるようなんですが、URLは合ってるんですよね...

これHTMLのリンク踏んでもそんなとこには何もない!って怒られます。URLは合っています。が、念のためサービス元にも聞きます。
あと、私の理解が全然なのですが、-H " & Quote("Authorization: Bearer " & ユーティリティ::access_token)をそのまま入れるとQuioteの中の"はいつものように怒られます。
ハマってしまったので、Clarisにも質問投げました。
それと、動いているaccess_tokenを取得する部分のヘッダ設定にあるOrigin:https://originを外部の$origin参照にしてみたら動きませんでした。
やはり普通では-Hに変数を入れられないのか?tokenを送る別の手段があるのか?? 謎です

#12 2023-02-14 18:51:29

wook
Member

Re: cURLの設定(続き)

また自己レスです。
サービス元と話をしたら、こちらが使っていいアドレスと違うアドレスがドキュメントに載っていたことが分かり、修正したら
データを取得できました。
しかし、access_tokenをそのまま張り付けた形でのGETなので、変数として送れるようになるかは未解決です。

Offline

#13 2023-02-14 19:36:55

wook
Member

Re: cURLの設定(続き)

最終自己レスになります。
chatGPTに聞いてみたら
"--header "Authorization: Bearer " & Your_Table::Your_Access_Token_Field & """
とやれば行けるよ!!と回答が来たのでやってみたところ、出来ました!!!!!
himadaneeさん、ありがとうございました

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 591.13 KiB (Peak: 608.03 KiB) ]