Мне интересно написать python script для входа в Facebook, а затем запросить некоторые данные (в основном, проверку входящих сообщений). Есть несколько хороших примеров того, как это сделать. Один интересный script я нашел здесь и есть какой-то приятный пример в самом стеке_поверхности. Теперь я могу просто скопировать-вставить код, который мне нужен, и сделать то, что я хочу, но это не будет хорошим способом учиться. Поэтому я пытаюсь понять, что я на самом деле кодирую, и не могу понять некоторые элементы script в первом примере, а именно: что такое post_form_id?
Вот раздел кода, который ссылается на "post_form_id" (строка 56-72):
# Initialize the cookies and get the post_form_data
print 'Initializing..'
res = browser.open('http://m.facebook.com/index.php')
mxt = re.search('name="post_form_id" value="(\w+)"', res.read())
pfi = mxt.group(1)
print 'Using PFI: %s' % pfi
res.close()
# Initialize the POST data
data = urllib.urlencode({
'lsd' : '',
'post_form_id' : pfi,
'charset_test' : urllib.unquote_plus('%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84'),
'email' : user,
'pass' : passw,
'login' : 'Login'
})
Не могли бы вы рассказать мне, что такое post_form_id? И аксессуарно: знаете ли вы, что означает lsd ключ/значение?
Спасибо.
Я не понимаю, почему вы пытаетесь "взломать" это... Существует официальный api из facebook для чтения почтового ящика пользователя, и вам нужно спросить разрешение "read_mailbox" для этого.
Поэтому я советую вам проверить мое сообщение здесь о том, как использовать facebook и python/django вместе, и как войти в facebook с python.
И тогда я рекомендую вам прочитать facebook doc о сообщениях/входящих.
В принципе вам нужен access_token, тогда вы можете сделать http://graph.facebook.com/me/inbox/?access_token=XXX
Вы также можете запросить разрешение "offline_access", так что вам нужно только один раз получить токен доступа, и вы сможете использовать его "навсегда"
И вы можете сделать http://graph.facebook.com/MESSAGE_ID?access_token=XXX
, чтобы получить информацию о конкретном сообщении.
Или используя api, я использую в другом потоке:
f = Facebook()
res = f.get_object("me/inbox")
...
Не стесняйтесь комментировать, если у вас есть какие-либо вопросы по этому поводу?