2016-04-23 4 views
0

には入りませんが、エラーなしで動作しますが、実際にFacebookにログインしていないことがわかり、 "Hello world" 。一度それが記録され、決して後になった。 グラフAPIを使用しました。Facebookにログインしようとしましたが、コードを実行しているときに

いくつかの助けを得たいです。ありがとう

import urllib2, cookielib, re, os, sys 
from facepy import GraphAPI 
import facebook 


class Facebook: 
    def __init__(self, email, password): 

     self.email = email 
     self.password = password 

     cj = cookielib.CookieJar() 
     opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
     opener.add_headers = [('Referer', 'http://login.facebook.com/login.php'), 
          ('Content-Type', 'application/x-www-form-urlencoded'), 
          ('User-Agent', 'Mozilla/8.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7'), 
          'Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)'] 

     self.opener = opener 

    def login(self): 

     url = 'https://login.facebook.com/login.php' 
     data = "locale=en_US&non_com_login=&email=" + self.email + "&pass="+ self.password + "&lsd=20TOl" 


     usock = self.opener.open('https://www.facebook.com/') 
     usock = self.opener.open(url, data) 

     read = usock.read() 

     if "Logout" in read: 
      print "Logged in." 
      graph = facebook.GraphAPI(Access Token) 
      graph.put_object("me", "feed", post="Hello, World!") 
     else: 
      print "failed login" 
      print read 
      sys.exit() 
     print read 

f = Facebook("email", "password") 
f.login() 


nik = graph.fql('select uid, name, friends from user where uid in' 
       '(select first_name, middle_name, last_name ' 
       'from friend where uid1 = me())') 
print nik 
+0

あなたの質問には質問はありません。 *「それは失敗する」*よりも[mcve]とより良い問題記述を与える*。 – jonrsharpe

+0

@jonrsharpeありがとう – user3225609

答えて

0

私はいくつかのFacebookのドキュメントを参照することをお勧めします、それのためのAPIがあります。しかし、とにかくリクエストでFacebookにログインしようとしましたが、それは痛みでした。あなたの目標がフェイスブックに簡単にログインするだけであれば、うまく動作するセレンのwebdriverを使うことができます。あなたのあなたの中にログインしても速いかもしれない要求セッションに切り替えることができたら、あなたの代わりにPhantomJS()webdriver.Firefox()を使用することができ、テストの目的のために

from selenium import webdriver 

EMAIL='yourmail' 
PASSWORD='yourpassword' 
url = 'https://de-de.facebook.com/login/' 

driver = webdriver.PhantomJS() 
# driver = webdriver.Firefox() 
driver.get(url) 
driver.find_element_by_id('email').send_keys(EMAIL) 
driver.find_element_by_id('pass').send_keys(PASSWORD) 
driver.find_element_by_id('loginbutton').submit() 

:ここ は、あなたが始めるかもしれないスニペットです。 (したがって、あなたはimport requestsになる必要があります)

session = requests.session() 
cook = {i['name']: i['value'] for i in driver.get_cookies()} 
#transfer cookies to new session 
requests.utils.add_dict_to_cookiejar(session.cookies, cook) 
driver.quit() 
関連する問題