[Titanium Mobile] AndroidとWordPressとのやりとりでCookie rejectedされる
WordPressと連携するAndroidアプリを作っている時に「Cookie rejected」の表示が出るので、気になって調べてみた。
環境: Titanium SDK 3.1.0.GA, Android 2.3.3(API 10), WordPress 3.5.0
表示されるWarningはこれ
W/ResponseProcessCookies( 4304): Cookie rejected: "BasicClientCookie[version=0,name=wordpress_eb9dbbb,domain=hoge.net,path=/wp-content/plugins,expiry=null]". Illegal path attribute "/wp-content/plugins".
W/ResponseProcessCookies( 4304): Cookie rejected: "BasicClientCookie[version=0,name=wordpress_eb9dbbb,domain=hoge.net,path=/wp-admin,expiry=null]". Illegal path attribute "/wp-admin".
PHP側でsetcookieするときに表示される。
アプリからの通信は特定のURLに送信して、プラグインの中でフックして処理をするやり方をしているので、「ADMIN_COOKIE_PATH」と「PLUGINS_COOKIE_PATH」をandroidアプリからの通信の場合は別の値にする必要があるみたい。
wp-load.php → wp-config.php → wp-settings.php → default-constants.php
と実行され、プラグインを読み込む前に定義されてしまうので、wp-config.phpに下記を追記。
if (!empty($_REQUEST['android']) ) {
define( 'ADMIN_COOKIE_PATH', '/');
define( 'PLUGINS_COOKIE_PATH', '/');
}
もちろん「android」というパラメータはアプリから送信する必要あり。
< Related Posts >