2013-07-12 4 views
0

У нас есть веб-страница Wordpress, и мы хотим сделать небольшое приложение для iOs и android. Так что я только что сделал API. Телефонный программист - фрилансер, поэтому в это время у меня нет ее кода, поэтому этот вопрос будет посвящен, может быть, но, возможно, некоторые из вас узнают ответ, если я скажу, что я сделал.Различные результаты от браузера и от мобильных

В этом API есть несколько методов, но для всех из них (кроме входа в систему) требуется аутентифицированный пользователь.

Так я сделал запрос, как это (сейчас рабочая ссылка): http://anydomain.com/service/app_request.php?request=login&username=xxx&password=yyy&trid=zzz

Этот сценарий начать с:

session_start(); 
include('../wp-load.php'); 

Так что, когда она вызывать сценарий с соответствующими учетными данными, я сделать авторизоваться.

$creds = array(); 
    $creds['user_login'] = $this->getVars['username']; 
    $creds['user_password'] = $this->getVars['password']; 
    $creds['remember'] = false; 
    if (is_ssl()) { 
     $secure_cookie = true; 
    } else { 
     $secure_cookie = false; 
    } 
    $user = wp_signon($creds, $secure_cookie); 
    wp_set_current_user($user->ID); 
    wp_set_auth_cookie($user->ID, false, false); 
    $user->data->user_registered = $this->formatDateForApp($user->data->user_registered); 
    $this->response['user'] = $user->data; 

Если я использую браузер с рабочего стола, все в порядке, пользователь вошел в систему, и я мог бы вызвать запросы.

Но когда она пытается использовать запрос выхода из системы, например, скрипт возвращает, не было пользователей Логина:

require_once(ABSPATH . 'wp-includes/pluggable.php'); 
$user = wp_get_current_user(); 
if (empty($user) || empty($user->ID)) { 
    $this->errorCode = NO_USER_WAS_LOGGED_IN; 
    $this->errorMsg = 'No user was logged in'; 
} else { 
    wp_logout(); 
    $this->response['message'] = $user->data->user_login . " logged out"; 
} 
$this->showResponse(); 

Я не знаком с мобильной разработкой, поэтому я не знаю, как это он обрабатывает сеансы. Это может быть проблема? Или это может быть проблема с файлом cookie?

Еще одна странная вещь, если я назову метод поиска (просто верните сообщение и верните результаты в json), он работает в браузере, но когда она попыталась позвонить ему с телефона, она вернет это для некоторых причина:

<html> 
    <head> 
     <meta http-equiv="refresh" content="0; url=http://59.xxx.xxx.xxx" /> 
    </head> 
    <body> 
    </body> 
</html> 

Да, я знаю, это кажется слишком общо, и без ее коды, это будет трудно, чтобы выяснить, что вызывает эту проблему, но, возможно, некоторые из вас также есть этот вопрос, и может помочь нам , Я думаю, что многие люди разработали такие приложения, что нужно для входа в систему, и не забудьте войти в систему.

Спасибо.

ОБНОВЛЕНИЕ: Это забавная вещь, и я никогда не встречался перед такой проблемой. Разработчик находится в Китае. Я проверил, что IP-адрес через браузер, и угадать, что: эта страница перенаправляет ее на этой странице:

http://59.151.88.32/index.php?source=unicomdns 

что на самом деле мобильный провайдер, который блокирует ее просьбу о какой-то причине. Решение может быть прокси, или я не знаю, но теперь мы знаем, что это не моя проблема с обслуживанием, а не проблема с ее программами. Это проблема с шинами.

ответ

0

Хорошо, по крайней мере, я нашел проблему. Я написал небольшое приложение, которое пытается использовать эти запросы. Как я уже упоминал, в браузере все было хорошо.

Я никогда не пытался использовать сеть от андроида до сих пор, но теперь я это сделал, и когда я хочу войти пользователь, LogCat говорит:

07-16 12: 52: 42,890: W/ResponseProcessCookies (9125): Cookie отклонено: «BasicClientCookie [version = 0, name = wordpress_d0c0d54098055ddfb5fe7a1313b4d3b5, domain =.anydomain.com, path =/wp-content/plugins, expiry = null] ". Недопустимый атрибут пути"/wp-content/plugins ". Путь происхождения:" /service/app_request.php "

Так что это было ваш разработчик не может войти в систему по телефону ...

Неудачный, я не знаком с андроидом на этой глубине, поэтому я не знаю решения для этого. Я проверил проблему с файлом cookie здесь : Java HtmlUnit - can't login to wordpress , но теперь я не знаю, как реализовать обработку файлов cookie.

Смежные вопросы