如何以编程方式在Facebook墙上发布?

时间:2012-06-21 00:45:40

标签: facebook facebook-graph-api

我对Facebook很新(是的,我是唯一一个),但我想用Python以编程方式在墙上发布消息。

我需要做些什么才能实现这一目标?我很困惑。我已经看到关于这一点的大多数问题都集中在如何让应用程序以某种方式与Facebook进行交互,但我想发布好像我是一个简单的用户(一个用户碰巧“拥有”该特定的Facebook页面)。我真的需要去创建一个应用程序吗? (顺便说一下,即使有了这个问题,我也遇到了问题......它告诉我,即使我通过短信验证后,我的帐户似乎是假的或无效的)。我想有一种更简单的方法,使用POST请求介绍我的凭据,但我没有读过类似的东西。

我原以为this是我需要的,但它会导致创建应用的页面。

一些指示?

顺便说一下,我通过Graph API Explorer中的publish_stream权限获得了一个令牌(使用扩展权限选项卡)。似乎此权限没有到期日期但不建议使用。对于令牌有更好的选择吗?。

由于

2 个答案:

答案 0 :(得分:0)

Facebook比其他网站显得有点棘手。

在Firebug中观看NET下的POST选项卡时,在登录时,我看到以下POST参数:

charset_test    €,´,€,´,水,Д,Є
default_persistent  1
email   myusername
lgnjs   1340241652
lgnrnd  182050_CuPx
locale  en_US
lsd AVqwALVx
pass    mypassword
persistent  1
timezone    240

我还不知道lsd参数是什么,但我确实通过在登录前查看登录页面的来源找出了lgnrnd是什么。它似乎在那里制作它更难以自动化身份验证。

首先,您希望脚本抓取该值的登录页面,将其存储在变量中。然后,cURL示例将类似于:

curl -L "https://www.facebook.com/login.php?login_attempt=1" \
  --cookie-jar /tmp/cookies.txt \
  --data-urlencode "email=myusername" \
  --data-urlencode "lgnrnd=$lgnrnd" \
  --data-urlencode "pass=mypassword"
  and so forth, with all the parameters...

当然,这是未经测试的,我也不知道其中一些参数值是什么,但你应该从中得到这个想法。您可以使用像Beautiful Soup这样的python模块或其他东西来应用上述基本概念。

然后你会做同样的事情,看着NET标签找到你发布到你的Facebook墙上时发送的参数,并把它们放在一起。

请注意,我使用curl' s --cookie-jar选项存储和使用Cookie。您需要一种方法来保存和使用带有请求的cookie,这就是我展示的原因。

希望无论如何都能帮助你开始..

答案 1 :(得分:0)

这个怎么样?。

import urllib2, urllib
parameters = {}
parameters['access_token'] = MY_TOKEN
parameters['message'] = 'Hello world'
target = 'https://graph.facebook.com/MY_ID/feed'

parameters = urllib.urlencode(parameters)
handler = urllib2.urlopen(target, parameters)
while True:
    if handler.code < 400:
        print handler.read() # Gets post_id
        break
    elif handler.code >= 400:
        print 'Error' # :-(
        break

这有问题吗?也许更好的方式?评论

由于