やるべきことはほとんど完了しましたが、まだ最後の部分で止まっています。以下からアクティビティをダウンロードする必要があります。今月ただし、URLは月ではなくアクティビティIDに関連付けられています(理にかなっています)。今月を今月のキャンペーンIDに関連付けることができるはずです。
私のスクリプトは次のとおりです
#!/bin/sh
#Retrieve phishline token
var=$(curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
"bof_ticket_user": "nope",
"bof_ticket_pw": "nopenopenope",
"api_key": "nope-nope-nope-nope-nope"}'
"https://api.phishline.com/nope/rest/authenticate" | jq -r ."data"."access_token")
#define latest campaign
var2=$(curl -X GET -H "Authorization: Bearer $var" -H "Cache-Control: no-cache" "https://api.phishline.com/nope/rest/campaigns" | jq -r ."data"[-1]."cutoffDate")
#Clean up cutoffDate variable to %Y-%m format
var3=$(echo $var2 | cut -c1-7)
# Assign current date in %Y-%m format
datedit=$("date +%Y-%m")
if datedit == $var3
#download latest campaign
curl -X GET -H "Authorization: Bearer $var" -H "Cache-Control: no-cache" "https://api.phishline.com/nope/rest/campaignresults/$whichvar"
誰でもより良い結果を得るための提案をすることができますか?編集:これは私が達成する必要があることを明確にしたことを願っています。スクリプトは今月の活動データをダウンロードする必要があります。今月のアクティビティデータは、今月のアクティビティを識別するために、アクティビティリストの「cutoffDate」をそのアクティビティのidフィールドに関連付けて検索します。どちらのフィールドも残り/キャンペーンの結果に表示されます。
答え1
あなたの質問で何がマッピングされているかはわかりませんが、bashバージョンが4より大きい場合は、連想配列を使用できます。
declare -A mapping=(
[2019-01]="some-id"
[2019-02]="some-other-id"
)
mon=$(process that retrieves the YYYY-MM)
campaign_id=${mapping[$mon]}
if [[ -z $campaign_id ]]; then
echo "no mapping for month $mon"
else
go fetch with "$campaign_id"
fi