#!/usr/bin/env bash set -euo pipefail readonly GRAPH_API_VERSION="v25.0" readonly PSID="27511427698460020" readonly ASID="122111097783118257" readonly APP_ID="26934819589512827" readonly APP_SECRET="TODO_APP_SECRET" readonly PAGE_ACCESS_TOKEN="TODO_PAGE_ACCESS_TOKEN" appsecret_proof="$( node -e ' const crypto = require("crypto"); const token = process.argv[1].trim(); const secret = process.argv[2].trim(); process.stdout.write( crypto.createHmac("sha256", secret).update(token).digest("hex") ); ' "$PAGE_ACCESS_TOKEN" "$APP_SECRET" )" response="$( curl -sS -G "https://graph.facebook.com/${GRAPH_API_VERSION}/${PSID}/ids_for_apps" \ --data-urlencode "app=${APP_ID}" \ --data-urlencode "access_token=${PAGE_ACCESS_TOKEN}" \ --data-urlencode "appsecret_proof=${appsecret_proof}" )" echo "$response" if echo "$response" | node -e ' const fs = require("fs"); const expected = process.argv[1]; const payload = JSON.parse(fs.readFileSync(0, "utf8")); const matched = Array.isArray(payload.data) && payload.data.some((item) => item && String(item.id) === expected); process.exit(matched ? 0 : 1); ' "$ASID"; then echo "Matched: PSID maps to ASID ${ASID}." exit 0 fi echo "Not matched: PSID does not map to ASID ${ASID}." exit 1