REST APIへの投稿時に「キーの認証に失敗しました」

ターゲットエクスプローラを使用してターゲットURLを作成しましたが、カールでGETリクエストを送信することはできません。エラーは、「キーの認証に失敗しました」です。

私が従う手順は次のとおりです:

  1. APIエクスプローラでURLを作成します:

http://51.15.94.180/wp-content/plugins/civicrm/civicrm/extern/rest.php?entity=Contact&action=get&api_key=userkey&key=sitekey&json={“sequential”:1}

  1. civicrm.settings.phpのサイトキーを探しました( CIVICRM_SITE_KEY

  2. APIキーを「管理者」連絡先(civicrm管理者アカウントに関連付けられている連絡先)に追加するために「APIキー」の拡張子を使用しました。

  3. この拡張URLを生成するためにキーを挿入しました(セキュリティ上の理由から変更しました):

http://51.15.94.180/wp-content/plugins/civicrm/civicrm/extern/rest.php?entity=Contact&action=get&api_key=uCMXIUhzpPv&key=VKtUrOkd&json={“sequential”:1}

  1. このURLを curl して、言及されたエラーを取得します

誰でも助けることができますか?

更新

System.phpauthenticateKey
関数にデバッグログステートメントを貼り付けることができました:

CRM_Core_Error::debug_var("req", $_REQUEST);
CRM_Core_Error::debug_var("req size", sizeof($_REQUEST));

これの結果は次のとおりです。

Mar 21 11:49:21  [info] $req = Array
(
    [entity] => Contact
)

Mar 21 11:49:21  [info] $req size = 1

だから、リクエストの最初のkey/valのペアだけが_REQUESTで受信されたようです。これはどうしたらできますか?

ベストアンサー

問題を引き起こしたのは、URLの周りに引用符を入れずにカールしているということでした。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です