Автоматическая публикация на блогах...
?????? ???? ?? ??????... (??, ??, ?????-???? ? ?????????????...) ????? ??????-?????? ???????? Blogger Api, ? ???? ????? ???????????, ???????? ?????, ? ??? ? ?? ???? ?????????, ???? ?? ??? ???????? ???? ?????, ????????? description ???????? ? ?????????. ? ??? ??? ? ???????????? ?????, ??? ?????????, ??????, ?????? ???? ? <title>-</title>, ? ????????? ????? ???????????????? ?????? ???????? ?????? ?????, ?? ????? ??? ?????? ? ????????? ?? ???????? ????? ???????????. ??? ?????, ??? ???? ? ??? ??????? ???? ?????? ? ??????? ???? API ?????????? -- ??? ?????? ?????????? ????? Data API.
? ??? ?? ????, ?????? ? ?????? ????? ????, ???????? ??????????? ???-???? ????????? ????? ?????????????, ? ???????? ???-???? ???????????. ?? ? Blogger API, ? ? ??? ??????????? Weblog API. ???????? ????? ?????? ?? ????????? (??? ???????? ? ???????????), ????????? ??? ????????????? ????? ?????????? ???? ??? ???????, ?? ??????? ????? ?? ?????????. ????????????:
- ?????? ??????? (??. ????) ?????? ???????????
- ???? ????? ?????????? ? base64, ???? ??????? ???????????? ???? ????? ????
- ???? ? ????????, ?? ????? ????????? ??????? Content-Type: text/xml
- ?????? ?????? ?????? ?? ? ???? ???????-???????? ???? ? ??? ??, ? ?????? ??? ????? ?????? ?? ????????????.
- ???? ???? ?? ? ???? ???????? ???????????? - ????? ???????? ?????????? ?????? ?? ????? ????? ??????.
??, ? ?????????? ???:
import httplib
import base64def publishPost(title, time, descr):
descr = base64.b64encode(descr)
body1 = """
<?xml version="1.0"?>
<methodCall>
<methodName>metaWeblog.newPost</methodName>
<params>
<param><value><string>BlogId</string></value></param>
<param><value><string>YourUserId</string></value></param>
<param><value><string>YourPassword</string></value></param>
<param><value><struct>
<member><name>title</name><value>"""
body2 = """</value></member>
<member><name>description</name><value><base64>"""
body3 = """</base64></value></member>
<member><name>pubDate</name><value>"""
body4 = """</value></member>
</struct></value></param>
<param><value><boolean>true</boolean></value></param>
</params>
</methodCall>
"""
body = body1 + title + body2 + descr + body3 + time + body4
print bodyconn = httplib.HTTPConnection("www.YourSite.com")
headers = {"Content-Type": "text/xml"}
conn.request("POST", "/path-to-xml-rpc-end-point/xmlrpc.php", body, headers)
res = conn.getresponse()# Just to see what's the result
print "Status: " + str(res.status)
print "Headers: "
print res.getheaders()
print "Body: "
print res.read()
conn.close()publishPost("My test tile", "date-time-in-right-format", "My test body")
???? ???? ??????, ?????? ???? ?????? ??????.
Comments
Anonymous
January 01, 2003
Так ведь хочется, чтобы они работали в посте, а не показывались.Anonymous
January 01, 2003
Не поделишься? Я как раз собирался сам писать для блоггера. Гугловский AppID, я понятное дело, свой заведу.Anonymous
June 02, 2008
А что, экранирование специальных символов < > не работает?Anonymous
June 03, 2008
У меня есть скрипты, использующие Гугловский atom+xml. Вполне ничего, работает без всяких проблем, и с блоггером, и с пикасой. В нём есть некая логика, в отличие от мразматических форматов xml+rpc с их бесконечными припевами param-param.Anonymous
June 03, 2008
Это пожалуйста, но проблема в том, что они написаны на никому не известном древнем языке. Скрипты здесь: http://tolkov.com/valery/blogger.zip Язык здесь: http://tolkov.com/winscript/