Windows 7 64ビットで、スケジュールされたマルチタグ画像を静かな方法で(GUIなしで)tumblrに投稿しようとしています。
まず、imacro と firefox で試してみます。動作していますが、マルチタグを作成できず、サイレントではありません。
次に、apigee と imacro を試しますが、データは配列 (URL エンコードされたバイナリ コンテンツ) でなければなりません。それを行う方法がわからず、黙っていません。
次に、python と pytumblr を試します。python 2.7.11 をインストールしてから、pytumblr 0.0.6 をインストールします (pip install pytumblr を使用)。インターネットでスクリプトを見つけて編集します:
import sys
if "F:\\Python27\\Lib\\site-packages\\pytumblr" not in sys.path:
sys.path.append("F:\\Python27\\Lib\\site-packages\\pytumblr")
import pytumblr
from tumblr_keys import * #this imports the content in our tumblr_keys.py file
# Authenticate via OAuth
client = pytumblr.TumblrRestClient(
consumer_key,
consumer_secret,
token_key,
token_secret
)
client.create_photo('my-blog', state="published", tags=["testing", "ok"], data="D:\\dessin.jpg")
もちろん、my-blog を tumblr ブログのドメイン名に置き換えます。次のファイルを作成しますtumblr_keys.py
。
consumer_key = ''
consumer_secret = ''
token_key = ''
token_secret = ''
tumblr 側でアプリケーションを作成し、 https: //api.tumblr.com/console/calls/user/info を有効にして許可します
私はPythonのIDLE(F5)で起動し、シェルにカーソルの点滅を追加するものは何もありませんが、tumblrには画像の投稿はありません。ファイアウォールをチェックしても問題ありません。
Python 2.7.11 をアンインストールし、Python 3.5.1 をインストールpytubmlr
しpylint
ます。
最初の行を次のように置き換えます。
import sys
if "F:\\Python35-32\\Lib\\site-packages\\pytumblr" not in sys.path:
sys.path.append("F:\\Python35-32\\Lib\\site-packages\\pytumblr")
そのため、パスは新しいインストールに変更されます。
IDLE は冗長であるため、今回はより適切です。
from request import TumblrRequest
File "F:\Python35-32\Lib\site-packages\pytumblr\request.py", line 37
except RedirectLimit, e:
^
SyntaxError: invalid syntax
SOで見つかったように、次のように置き換えexcept RedirectLimit, e:
ますexcept RedirectLimit as e:
61行目と75行目で同じ問題があります。次を置き換えます。
ImportError: No module named 'urllib2'
さて、このコードは Python の古いリリース用に書かなければならないと思いますが、続けて 1 行目から 15 行目を置き換えます。
import urllib
try:
import urllib.request as urllib2
except ImportError:
import urllib2
import time
import json
try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse
from urllib.parse import parse_qsl
import oauth2 as oauth
from httplib2 import RedirectLimit
それでも、再びエラーがあります:
File "F:\Python35-32\Lib\site-packages\pytumblr\helpers.py", line 20, in validate_params
if len(multiple_data) > 1:
TypeError: object of type 'filter' has no len()
この時点で、私は解決策を見つけることができません。ご覧のとおり、Python を使用するのは初めてです。手伝って頂けますか?
ありがとう。
2015 年 12 月 28 日に編集:
私はpython 2.7.11の単純なコードを試します:
import urllib2
def internet_on():
try:
response=urllib2.urlopen('http://173.194.42.5',timeout=1)
return True
print (ok)
except urllib2.URLError as err: pass
return False
print (bad)
チェックのために、Pythonはインターネットと通信でき、IDLEのカーソルは詳細なしで点滅しますか?
ファイアウォールのコモドを非アクティブ化しましたが、それ以上のものはありません。