チュートリアル/ドキュメントに従って fetch(Connect PHP API)/searchContent(Knowledge Foundation API) を実行しようとすると、いくつかの奇妙な問題に直面しています。
動作と出力
- ドキュメントに従って、API を初期化します。関数 error_get_last() (フェッチ後に呼び出される) は、コアの読み取り専用ファイル (変更は許可されていません) にエラーが含まれていることを示しています。
配列 ( [タイプ] => 8 [メッセージ] => 未定義のインデックス: REDIRECT_URL [ファイル] => /cgi-bin/${インターフェイス名}.cfg/scripts/cp/core/framework/3.2.4/init.php [行] => 246 )
- 初期化後、fetch 関数を呼び出してアカウントを取得します。間違った ID を指定すると、エラーが返されます。
無効な ID: ID = 32 のアカウントはありません
それ以外の場合、正しい ID を指定すると、すべてのフィールドに NULL が設定された Account オブジェクトが返されます。
object(RightNow\Connect\v1_2\Account)#22 (25) {
["ID"]=>
NULL
["LookupName"]=>
NULL
["CreatedTime"]=>
NULL
["UpdatedTime"]=>
NULL
["AccountHierarchy"]=>
NULL
["Attributes"]=>
NULL
["Country"]=>
NULL
["CustomFields"]=>
NULL
["DisplayName"]=>
NULL
["DisplayOrder"]=>
NULL
["EmailNotification"]=>
NULL
["Emails"]=>
NULL
["Login"]=>
NULL
/* [...] */
["StaffGroup"]=>
NULL
}
試み、回避策、およびトラブルシューティング情報
- 構成: を使用して使用されるアカウントには、次
InitConnectAPI()
の権限があります。 InitConnectAPI()
初期化:例外をスローしないように呼び出します (try - catch ブロックを追加)- fetch 関数の呼び出し: 上記のように、 への呼び出し
RNCPHP\Account::fetch($act_id)
はアカウントを見つけます (invalid_id => エラー) が、フィールドにデータを入力することはできません RNCPHP::fetch($correct_id)
呼び出しで例外はスローされませんKnowledge Foundation API のサンプル例に従って回答を取得しようとしても、動作は同じです。
$token = \RNCK::StartInteraction(...) ; \RNCK::searchContent($token, 'lorem ipsum');
PHP の SoapClient を使用して、入力されたオブジェクトを取得することができます。ただし、これは標準の一部ではなく、self-call-local-WebService は適切な方法ではありません。
問題を再現するコード
error_reporting(E_ALL);
require_once(get_cfg_var('doc_root') . '/include/ConnectPHP/Connect_init.phph');
InitConnectAPI();
use RightNow\Connect\v1_2 as RNCPHP;
/* [...] */
try
{
$fetched_acct = RNCPHP\Account::fetch($correct_usr_id);
} catch ( \Exception $e)
{
echo ($e->getMessage());
}
// Dump part
echo ("<pre>");
var_dump($fetched_acct);
echo ("</pre>");
// The core's error on which I have no control
print_r(error_get_last());
質問:
- 同じ問題に直面した人はいますか?それを解決するのに役立つ回避策/修正は何ですか?
- 関数の動作によると
RNCPHP\Account::fetch($correct_usr_id)
、問題はコアの一部である可能性がある「フィールドの入力」ステップから発生していると推測できます(私には力がありません)。これをどのように処理すればよいですか (フェッチは静的であり、アカウントは抽象的ではないようです)。 debug_backtrace()
何がうまくいかないかをある程度把握するために関数を使用しようとしましたが、関連する情報は出力されません。より多くのデバッグ情報を取得する方法はありますか?
前もって感謝します、