質問概要
タイトルの通りなのですが、shopify flowからSend HTTP requestアクションを実行し、カスタムアプリにリクエストを送る際の認証方法についてです。
こちらに似たような質問がありましたので試してみましたが、hmac認証に必要なパラメータがリクエストに入っていなくてですね、、(X-Shopify-Hmac-SHA256)
詳しい方おられましたら教えていただきたいです。
認証方法の質問
Shopify FlowのSend HTTP requestアクションからカスタムアプリへリクエストを送る際、認証に必要なパラメータ(特にX-Shopify-Hmac-SHA256ヘッダー)の扱いについて質問が投稿されました。
パブリックアプリとカスタムアプリの違い
回答者は、参照されたリンク先の内容はパブリックアプリの挙動であり、カスタムアプリではリクエスト内容が異なる可能性があると指摘しました。
発生しているエラー
質問者は補足として、authenticate.flow(request)を使用してAdmin APIにGraphQLリクエストを送信した際、ステータス410(Gone)のエラーレスポンスが返ってくる問題を報告しています。
const { admin } = await authenticate.flow(request)
const Response = await admin.graphql(GetProducts, {...})
エラーレスポンスには本文がなく(size: 0)、具体的な原因は不明のまま議論が継続中です。
タイトルの通りなのですが、shopify flowからSend HTTP requestアクションを実行し、カスタムアプリにリクエストを送る際の認証方法についてです。
こちらに似たような質問がありましたので試してみましたが、hmac認証に必要なパラメータがリクエストに入っていなくてですね、、(X-Shopify-Hmac-SHA256)
詳しい方おられましたら教えていただきたいです。
添付されているリンク先の内容は、パブリックアプリで実行した場合の挙動になります。推測ですが、パブリックアプリとカスタムアプリでリクエストの内容が変わるのかもしれないです。
なるほどですね、、
補足
エラーの詳細としてはshopify flowからカスタムアプリにhttpリクエストして、admin apiにリクエストした際に下記errorがかえってきます
request
const { admin } = await authenticate.flow(request)
const Response = await admin.graphql(GetProducts, {
variables: {...etc}
})
error
error Response {
size: 0,
[Symbol(Body internals)]: {
body: null,
type: null,
size: 0,
boundary: null,
disturbed: false,
error: null
},
[Symbol(Response internals)]: {
url: undefined,
status: 410,
statusText: 'Gone',
headers: {},
counter: 0,
highWaterMark: undefined
}
}