У меня есть приложение GAE, которое прекрасно работает из моего браузера, но не может определить пользователя, когда я пытаюсь запустить тот же веб-сайт на iphone.
Я использую текущий user_id для отправки сообщения с помощью channel-API
Это код в моем приложении python GAE - вот две определения - send_update и send_update_iphone - как вы видите, они абсолютно похожи! оба находятся в Class Updater ():
Updater():
def send_update(self):
message = self.get_fetch_message()
user = users.get_current_user()
channel.send_message(user.user_id()+user.user_id(),message)
#for iphone - no user yet...
def send_update_iphone(self):
message = self.get_fetch_message()
user = users.get_current_user()
channel.send_message(user.user_id()+user.user_id(),message)
Теперь я звоню им из разных мест, я звоню первым
Updater().send_update()
и второй
Updater().send_update_iphone()
Когда я пользуюсь приложением, первое работает прекрасно - оно открывает канал и без проблем обновляет его в сообщениях.
когда я попадаю в приложение с iphone (во время входа в мою почту), я получаю:
Объект 'NoneType' не имеет атрибута 'user_id'
несколько деталей для iPhone:
- я попадаю на сайт из UIWebView
- Я вижу, что я вошел в свою учетную запись Google
Может кто-нибудь помочь? Я пробовал все, что знаю >>> Спасибо!
ОБНОВЛЕНИЕ: я проверил куки (спасибо Calvin) и увидел, что в браузере я получаю куки, но в iphone я не получаю куки (я использую NSLog(@"Cookies: %@", [request1 responseCookies]);
)
Теперь я знаю, что в браузере это работает, потому что я захожу на страницу myapp.appspot.com из моего браузера, поэтому у него есть cookie, а с iphone я ПОСТУПАЮ на myapp.appspot.com, но я никогда не попаду на саму страницу, поэтому сервер никогда не отправит мне cookie.
Это интересно, но я до сих пор не знаю, как решить ...