パラメータをAPIに送信するようにコードを変更する - Bash - Pastebin

パラメータをAPIに送信するようにコードを変更する - Bash - Pastebin

最近、次のコードを使用して貼り付けをPastebin.comに送信しようとしました。

https://github.com/mefuckin/pastebin-shell/blob/master/pbin

スクリプトがapi_user_keyを送信していないようです。 183行目には次のようにリストされています。

--data "api_user_key=$api_user_key" \

したがって、次のように値を指定することは問題だと思います。

api_user_key="VALUE HERE"

その後、APIに送信します。しかし、コードのこの部分(174で始まる部分)が何をしているのかはわかりません。

[ $logintopastebin -ne 0 ] && auth_user
api_paste_code=$( cat - )
curl -0 --show-error \
    --data "api_dev_key=$api_dev_key" \
    --data "api_option=paste" \
    --data "api_paste_code=$api_paste_code" \
    --data "api_paste_format=$api_paste_format" \
    --data "api_paste_private=$api_paste_private" \
    --data "api_paste_expire_date=$api_paste_expire_date" \
    --data "api_user_key=$api_user_key" \
    --data-urlencode "api_paste_name=$api_paste_name" \
    --data-urlencode "api_paste_code=$api_paste_code" \
        "$api_url/api_post.php"

コードのこの部分は、これらすべてのパラメータがAPIに送信されることを意味しますか?

答え1

コードは、api_user_key変数が設定されていない場合は空の文字列を送信できます。これスクリプトauth_user関数はサーバーを照会してユーザーのキーを検索するコードを含みますが、関数は最初にゼロ以外の値に設定した場合、またはオプションのいずれかを渡したり、コマンドラインから渡した場合にのみ呼び出されます。呼び出し後または呼び出し前の代わりに変数を手動で設定して値をオーバーライドできます。logintopastebin-u-lapi_user_keyauth_usercurl

api_user_key=$(cat ~/.passwords/pastebin/api_user_key)
if [ -z "$api_user_key" ] && [ "$logintopastebin" -eq 0 ]; then
  auth_user
fi
api_paste_code=$( cat - )
curl -0 --show-error \

スクリプトが何をしているのかわからない場合は、set -x実行時に各行のトレースを印刷するように2行目に追加してください。

関連情報