長年の潜伏者、初めての質問者。コーヒーの消費量とタイピングの正確さの間には反比例の関係があるため、タイプミスがあればご容赦ください。
私がやろうとしているのは、ファンの Facebook ページ用の単純なアップローダ アプリケーションを作成することです。私が知っている唯一の言語であり、FB Dev でサポートされているので、Python で書くことにしました。
このアプリケーションの目標はかなり控えめです。
- ユーザーはボックスをクリックするだけで、ダイアログが開き、ハード ドライブ上のファイルを選択してクラウドにアップロードできるはずです (私はドロップボックスに落ち着きました。これについては後で詳しく説明します)。
- アップローダは、特定のファイル拡張子のみを受け入れる必要があります。
- ユーザーは、これらのファイルを参照してダウンロードできる必要があります。
- アプリケーションはフラッドの試みを検出できる必要があり、理想的な世界では、どの Facebook ユーザーがフラッドをアップロードしているかを検出できる必要があります。(この目標の後半がストレッチ ターゲットであることは、私のコーディング "スキル" に対する悲しい告発です)。
- ユーザーは、理想的には、ファイルをクラウドからクラウドへ、およびクラウドからディスクへ移動できる必要があります。これはそれほど重要ではありません。
よし、これで大作の目的を説明したので、指導のためにオーバーフローの神々に謙虚に近づく前に、自分がどこにいるのかをフォローアップします.
ということで、まずは Heroku にアカウントを作成し、そこでアプリケーションを作成しました。現時点では基本的にそこに座っており、コードはまったくありません。
この後、単純な Python ファイル アップローダーを Web で探し始めました。あちこち検索した後、DropBox 開発サイトでこのコードを見つけました。そこで、ドロップボックス SDK のサインアップを行い、このhttp://pypi.python.org/pypi/setuptoolsを介して「セットアップ ツール」をインストールする 必要がありました。 「setuptools モジュール」が見つからないというエラー。
以下にコードを掲載しました。
# 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 をいじって、このすべてに役立つ可能性のあるアプリケーションがアプリケーションにあるかどうかを直接調べてみましたが、コード、ブラウザー、およびドロップボックス アプリはすべて互いに完全に無視しているようです。
もう一度多くの助けに感謝します。しばらくの間、いくつかの SQL に頭を悩ませるかもしれません。