Что такое post_form_id?(используя python urllib2) - PullRequest
1 голос
/ 24 апреля 2011

Я заинтересован в написании скрипта Python для входа в Facebook, а затем запрашивать некоторые данные (в основном, проверяя входящие). Есть несколько хороших примеров того, как это сделать. Один интересный скрипт, который я нашел здесь , и есть хороший пример для самого stackoverflow . Теперь я могу просто скопировать и вставить часть кода, который мне нужен, и сделать то, что я хочу, но это не будет хорошим способом обучения. Поэтому я пытаюсь понять, что я на самом деле кодирую, и не могу понять некоторые элементы сценария в первом примере, а именно:

Вот фрагмент кода, который ссылается на "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 ?

Спасибо.

1 Ответ

1 голос
/ 24 апреля 2011

Я не понимаю, почему вы пытаетесь "взломать" это ... Существует официальный API от Facebook для чтения почтового ящика пользователя, и для этого вам нужно запросить разрешение «read_mailbox».

Поэтому я советую вам проверить мой пост здесь о том, как использовать facebook и python / django вместе, и как войти в facebook из python.

И тогда я бы порекомендовал вам прочитать документ в facebook о сообщениях / входящих.

Обычно вам нужен токен доступа, тогда вы можете сделать 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")
...

Не стесняйтесь комментировать, если у вас есть какие-либо вопросы по этому поводу?

...