gpt4 book ai didi

python - 尝试构建简单的文件 uploader Facebook 应用程序

转载 作者:行者123 更新时间:2023-12-01 05:56:18 25 4
gpt4 key购买 nike

长期潜伏者,第一次提问。请原谅任何打字错误,因为我喝的咖啡和打字准确性之间存在反比关系。

我想做的是为粉丝 Facebook 页面创建一个简单的 uploader 应用程序。我决定用 Python 编写它,因为它是我所知道的唯一语言,并且受到 FB Dev 支持。

这个应用程序的目标相当温和:

  1. 用户应该能够简单地点击一个框,打开一个对话框来选择硬盘上的文件并将其上传到云端(我选择了 dropbox,稍后会详细介绍)
  2. 上传者应仅接受特定的文件扩展名。
  3. 用户应该能够浏览并下载上述文件。
  4. 应用程序应该能够检测洪水尝试,并且在理想的情况下能够检测哪个 Facebook 用户正在上传它们。 (这个目标的后半部分是一个延伸目标,这是对我的编码“技能”的悲伤控诉)。
  5. 理想情况下,用户应该能够将文件从云移动到云,以及从云移动到磁盘。这并不那么重要。

好吧,现在我已经为我的巨著制定了目标,在谦卑地向溢出之神寻求指导之前,我将跟进我目前的情况。

首先,我在 Heroku 上创建了一个帐户,并在那里创建了应用程序。目前它基本上就放在那里,里面没有任何代码。

此后,我开始在网络上寻找简单的 Python 文件 uploader 。经过一番搜索,我在 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。

最佳答案

执行安装工具脚本如下

curl http://python-distribute.org/distribute_setup.py | python

这应该可以解决该错误

ImportError: No module named pkg_resources

该计划的其余部分听起来应该有效,因为 Heroku 的免费软件包没有空间来保存这些文件

an ideal world be able to detect which facebook user is uploading them

只需通过 Facebook 身份验证流程进行身份验证 http://developers.facebook.com/docs/authentication/然后您可以使用以下命令登录当前用户

https://graph.facebook.com/me?access_token=xxx

使用像facepy这样的Facebook Python库

pip install facepy

它的工作原理就像

from facepy import GraphAPI
graph = GraphAPI('your_access_token_goes_here')
graph.get('me')

这里缺少逻辑,例如像 Dropbox 那样对网页进行身份验证,但这是一般要点。

到目前为止,一切看起来都不错,我认为您现在还没有处于 Facebook API 检查阶段,因为这是 Dropbox API 问题和 Python setuptools 问题

关于python - 尝试构建简单的文件 uploader Facebook 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12472173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com