我要做的是为粉丝facebook页面创建一个简单的上传应用程序。我决定用Python编写它,因为它是我所知道的唯一语言,并且得到了FB Dev的支持。
此应用程序的目标非常适中:
好了,所以现在我已经为我的巨着作出了目标,我会跟着我所处的位置,然后羞辱接近溢出的神来寻求指导。
首先,我在Heroku上创建了一个帐户,并在那里创建了应用程序。它基本上就坐在那里,没有任何代码。
在此之后,我开始在网上查找简单的Python文件上传器。搜索后,我在DropBox开发站点上找到了这段代码。所以我通过注册获取Dropbox SDK,并且必须通过此http://pypi.python.org/pypi/setuptools安装“设置工具” 我使用了ez_setup.py并简单地运行了似乎超出了“setuptools module”找不到的错误。
我发布了以下代码。
# Include the Dropbox SDK libraries
from dropbox import client, rest, session
# Get your app key and secret from the Dropbox developer website
APP_KEY = 'xxxxxetc.'
APP_SECRET = 'xxxxxetc.'
# ACCESS_TYPE should be 'dropbox' or 'app_folder' as configured for your app
ACCESS_TYPE = 'dropbox'
sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
request_token = sess.obtain_request_token()
# Make the user sign in and authorize this token
url = sess.build_authorize_url(request_token)
print "url:", url
print "Please authorize in the browser. After you're done, press enter."
raw_input()
# This will fail if the user didn't visit the above URL and hit 'Allow'
access_token = sess.obtain_access_token(request_token)
client = client.DropboxClient(sess)
print "linked account:", client.account_info()
f = open('working-draft.txt')
response = client.put_file('/magnum-opus.txt', f)
print "uploaded:", response
folder_metadata = client.metadata('/')
print "metadata:", folder_metadata
f, metadata = client.get_file_and_metadata('/magnum-opus.txt',rev='362e2029684fe')
out = open('magnum-opus.txt', 'w')
out.write(f.read())
print(metadata)
此后我遇到了错误
Traceback (most recent call last):
File "F:/Python27/FAUploader (Roaring-gorge)/Roaringgorge101", line 2, in <module>
from dropbox import client, rest, session
File "F:\Python27\dropbox\__init__.py", line 3, in <module>
from . import client, rest, session
File "F:\Python27\dropbox\client.py", line 52, in <module>
from .rest import ErrorResponse, RESTClient
File "F:\Python27\dropbox\rest.py", line 8, in <module>
import pkg_resources
ImportError: No module named pkg_resources
我开始有点担心这可能是朝错误的方向发展的。我不擅长编码,更糟糕的是寻求帮助。所以我现在要发布这个,然后我花了太长时间试图让我的问题太完美了。我真的很喜欢编码,如果你们能帮助我朝着正确的方向前进,我们将不胜感激。看起来每个人,即使是经验不足的人,都能比我更快地完成这些项目。
这些是我一直在使用的网站/我一直在访问的网站
https://www.dropbox.com/developers
显然,我不允许发布更多超链接,因为我太贵了。 '-_-
无论如何我离题了,任何帮助都会非常感激。
所以我设法更新Python环境以克服上面帖子中描述的错误。然而,我只是成功地获得了一个让我更加困惑的新作品。
Traceback (most recent call last):
File "F:\Python27\FAUploader (Roaring-gorge)\Roaringgorge101", line 22, in <module>
access_token = sess.obtain_access_token(request_token)
File "build\bdist.win-amd64\egg\dropbox\session.py", line 205, in obtain_access_token
response = self.rest_client.POST(url, headers=headers, params=params, raw_response=True)
File "build\bdist.win-amd64\egg\dropbox\rest.py", line 260, in POST
return cls.IMPL.POST(*n, **kw)
File "build\bdist.win-amd64\egg\dropbox\rest.py", line 207, in POST
post_params=params, headers=headers, raw_response=raw_response)
File "build\bdist.win-amd64\egg\dropbox\rest.py", line 183, in request
raise ErrorResponse(r)
ErrorResponse: [401] u'Token is disabled or invalid'
>>>
我尝试使用DropBox直接查看应用程序中是否有任何可能对我有所帮助的东西,但代码,我的浏览器和Dropbox应用程序似乎都完全忽略了对方。
再一次非常感谢。我想我可能会在一段时间内反对某些SQL。
答案 0 :(得分:2)
执行设置工具脚本,如下所示
curl http://python-distribute.org/distribute_setup.py | python
这应该处理那个错误
ImportError:没有名为pkg_resources的模块
计划的其余部分听起来似乎应该工作,因为Heroku的免费软件包没有空间来容纳这些文件
一个理想的世界能够检测哪个Facebook用户正在上传它们
通过Facebook身份验证流http://developers.facebook.com/docs/authentication/进行身份验证,然后您可以使用
记录当前用户https://graph.facebook.com/me?access_token=xxx
使用Facebook Python库像facepy
pip install facepy
就像
一样from facepy import GraphAPI
graph = GraphAPI('your_access_token_goes_here')
graph.get('me')
这里缺少逻辑,例如像Dropbox这样的网页的auth,但这是一般的要点。
所以到目前为止一切看起来还不错,我认为你现在不在Facebook API检查阶段,因为这是一个Dropbox API问题和Python setuptools问题
答案 1 :(得分:0)
对ErrorResponse的回复:[401] u'Token被禁用或无效'在我的代码中得到了同样的东西
来自Dropbox API: 如果令牌不再被授权,REST API将返回HTTP错误401未经授权的响应
我复制了生成的链接并再次授权应用程序以使我的代码正常工作:)