■
PHPからXML-RPC2を使用して、MTのエントリーにカテゴリを付けようとしてどはまり。
$client = XML_RPC2_Client::create('http://example.jp/cgi-bin/mt/mt-xmlrpc.cgi', array('prefix' => 'mt.', 'encoding' => 'utf-8', 'debug' => true)); try { $result = $client->setPostCategories($entry_id, $user, $pass, array( 'categoryId' => '200' )); var_dump($result); } catch (XML_RPC2_FaultException $e) { var_dump($e); } catch (Exception $e) { var_dump($e); }
上記のようなコードで $entry_id のエントリにカテゴリID'200' を付加しようとしたところ
Not an ARRAY reference at /var/www/cgi-bin/mt/lib/MT/XMLRPCServer.pm line 988
こんなエラーになってしまう。
「配列のリファレンスが探してるのと違う」的なエラーのもよう。スペルミスはしてないしなーと試行錯誤すること数時間。次のようにしたらtrue(成功)が帰ってきた。
$client = XML_RPC2_Client::create('http://example.jp/cgi-bin/mt/mt-xmlrpc.cgi', array('prefix' => 'mt.', 'encoding' => 'utf-8', 'debug' => true)); try { $result = $client->setPostCategories($entry_id, $user, $pass, array( array( 'categoryId' => '200' ))); var_dump($result); } catch (XML_RPC2_FaultException $e) { var_dump($e); } catch (Exception $e) { var_dump($e); }
'categoryId' が固定だから複数カテゴリを列挙したりisPrimaryをつけるにはこうなるのかー。。