【问题标题】:Update Facebook Page's status using pyfacebook使用 pyfacebook 更新 Facebook 页面的状态
【发布时间】:2009-12-15 14:00:59
【问题描述】:

我正在尝试向我的 Django 应用程序添加功能:当新帖子获得批准时,我想通过一条消息和帖子的链接自动更新相应 Facebook 页面的状态。基本状态更新。

我已经下载并安装了pyfacebook - 我已经阅读了来自 Facebook 的 tutorial。我也看到了这个建议here on SO

import facebook
fb = facebook.Facebook('YOUR_API_KEY', 'YOUR_SECRET_KEY')
fb.auth.createToken()
fb.login() # THIS IS AS FAR AS I CAN GET
fb.auth.getSession()
fb.set_status('Checking out StackOverFlow.com')

然而,当我接到login() 电话时,pyfacebook 会尝试打开 lynx,以便我可以“通过网络”登录 Facebook——这显然对我不起作用,因为系统应该自动化... 我一直在寻找,但不知道如何让这一切与脚本一起工作,而不必通过网络浏览器登录。

有什么想法吗?

【问题讨论】:

    标签: python django facebook pyfacebook


    【解决方案1】:

    login 的定义中,特别是在文档字符串中,似乎预期的行为是打开浏览器以便让您以这种方式登录。

    def login(self, popup=False):
        """Open a web browser telling the user to login to Facebook."""
        import webbrowser
        webbrowser.open(self.get_login_url(popup=popup))
    

    查看您链接的 Facebook 页面 User:PyFacebook_Tutorial,看起来带有 login 的示例是“桌面应用程序”示例。您想要关注“Web 应用程序”部分。我鼓励你继续学习那里的教程。

    【讨论】:

    【解决方案2】:

    如果你想登录到你的 facebook 个人资料页面,我已经设法用这个脚本做到了:

    将此文件另存为 fb_login.py 并在同一文件夹中创建一个文件 fb_test.html

    我已成功登录,您可以通过在浏览器上查看 fb_test.html 或以纯文本搜索您的姓名来证明这一点。

    有谁知道如何使用简单的身份验证凭据而不是使用您需要制作应用程序的 SECRET AND API 密钥登录?

    import urllib, urllib2, cookielib
    
    user = 'put_your_mail_here'
    passwd = 'put_your_password_here'
    
    file = './fb_test.html'
    url_login = "https://login.facebook.com/login.php?"
    url_action = "https://login.facebook.com/login.php?login_attempt=1"
    url_topic = "http://www.facebook.com/profile.php?id=___put_your_profile_Number_here"
    url_index = "https://login.facebook.com/login.php?"
    
    def login(user, password, url_action):
        cj = cookielib.LWPCookieJar()
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
        urllib2.install_opener(opener)
        opener.addheaders=[('Content-Type','application/x-www-form-urlencoded'),('Connection','keep-alive'),('User-Agent','Mozilla/5.0')]
        params = urllib.urlencode({'action':url_action , 'referer':url_index, 'email':user, 'pass':passwd, 
                                      'loginTrue':"login"})
    
    f = opener.open(url_action, params)
        f.close()
        f = opener.open(url_action, params)
        f.close()
        return opener
    
    def get_source_code( opener, url_x ):
        f = opener.open(url_x)
        data = f.read()
        print type(data)
        f.close()
        return data
    
    def keep_log( data, file ):
        f = open(file, 'w')
        f.write(data)
        f.close()
    
    opener = login(user, passwd, url_action)
    src_code = get_source_code(opener, url_topic)
    keep_log(src_code, file)
    print src_code
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多