【问题标题】:Simple Python script to post in facebook wall在 Facebook 墙上发布的简单 Python 脚本
【发布时间】:2018-06-01 12:30:48
【问题描述】:

我对 python 脚本和任何在线内容都非常陌生,但我想从一个有趣的地方开始,所以我想出了一个目标:编写一个简单的桌面 .py 文件,每次运行时只需简单地发布“ Hello World' 以我的名义在我的 Facebook 墙上。

最后,我只是通过硬编码(据我所知)用户访问令牌并使用该令牌下的 facebook 图来管理

facebookGraph = facebook.GraphAPI(access_token="qwertyuiop")
fb_response = facebookGraph.put_object("me", "feed", message="Hello World")

现在文档说用户令牌的生命周期很短,我不太喜欢手动进入并将其复制到我的程序中的想法(即使它每 2 小时或 2 个月一次)所以我第二次尝试,取而代之的是获取我启用了访问我帐户的每个权限的应用程序令牌

def FetchAppAccessToken(app_id, app_secret):
        headers = {'grant_type': 'client_credentials', 'client_id': app_id, 'client_secret': app_secret}
        response = requests.post('https://graph.facebook.com/oauth/access_token?', params = headers)
        logging.debug(response.text)
        return response

#then.. get the right substring within response and use the graph as before 

但我总是遇到

facebook.GraphAPIError: An active access token must be used to query information about the current user.

我认为也许使用用户令牌是可行的方法,但经过几个小时的反复试验,包括尝试通过提供电子邮件和密码来获取用户令牌,我读到没有用户根本不可能相互作用。所以回到 App Tokens 和更多的阅读。我遇到了在 Python 中使用 PHP 或使用 OAuth/OAuth2(我没有经验)创建登录流程来检索我可以使用的令牌,但我开始觉得我正在偏离轨道应该是用的。

有没有更简单的方法,例如为文件提供电子邮件和密码,只要它在我的桌面上就可以完成该任务?

另外,我想避免打开任何浏览器并单击模拟来执行此操作(如果可能的话)。

【问题讨论】:

    标签: python-3.x scripting facebook-wall facebook-graph-api-v2.0


    【解决方案1】:

    不确定这是否是最有效的答案,但我通过使用应用程序凭据来验证我的登录名来进行管理,但我没有通过请求传递它,而是让它通过 WebWidget 来模拟浏览器,其中 URL 将包含代码或令牌,在检索到值后关闭窗口并使用它来创建 facebook 图表并像往常一样运行它。

    facebookGraph = facebook.GraphAPI(access_token=accessToken["access_token"], version=2.7)
    facebookGraph.put_object(parent_object='me', connection_name='feed', message='Hello, world')
    

    不幸的是,它必须通过伪浏览器。

    我还没有尝试过,但是,

    另一方面,如果有用户已经登录,如果用户已经登录,您可以检查 cookie 并用代码交换访问令牌,如果没有,则只需进行浏览器登录。这样webwidget就不需要每次程序运行时都弹出来了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-07
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多