Что такое post_form_id? (используя python urllib2)

1

Мне интересно написать 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 ключ/значение?

Спасибо.

  • 0
    ] его переменная facebook что-то использует ... они ищут значение на странице index.php
Теги:
facebook
login
urllib2

1 ответ

1
Лучший ответ

Я не понимаю, почему вы пытаетесь "взломать" это... Существует официальный 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")
...

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

  • 1
    Спасибо Dwarfy, две вещи: * сначала я взглянул на официальный API Facbook и обнаружил, что мне нужно зарегистрировать новое приложение. При этом Facebook попросил меня идентифицировать себя с моей кредитной картой, что я нашел подозрительным. Я спросил себя: какое отношение моя кредитная карта имеет к бесплатному приложению с открытым исходным кодом, которое каждый может использовать и изменять? И если мой браузер может читать Facebook без моей кредитной карты, тогда зачем он мне нужен при проверке кода? * второе: я хочу узнать о Python, это хорошая практика для меня, и именно поэтому я задал вопрос. Я посмотрю на ваш пост. Спасибо
  • 0
    Да, я могу понять ваш страх по поводу кредитных карт ... Но я думаю, что вы также можете идентифицировать себя с помощью мобильного телефона ... Я думаю, что Facebook делает это, чтобы предотвратить злоупотребления со стороны разработчиков
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню