VBScript : XML-RPC で Seesaa に投稿( オプションを付けてカテゴリ選択 )

  新規投稿時には、カテゴリを設定できないので2回呼び出しています



単純な仕様なのに、ちゃんとしたドキュメントが無く、情報を集めるのに苦労しました。

1) 日本語の Six Apart の 詳細では無い古いドキュメント
2) 一般リンク : MovableType で使える XML-RPC API
3) Seesaa の追加 API : ブログ ・ヘルプ: Seesaa XML-RPC APIについて(開発者向け)
4) Microsoft 用のドキュメント : MetaWeblogAPI metaWeblog.newPost メソッド


seesaa.wsf
001.<JOB>
002.<COMMENT>
003.************************************************************
004. XML-RPC
005. Seesaa にオプション付きで投稿してカテゴリを設定する
006. 
007. mt_convert_breaks : 0 : 改行を<br/>タグに変換しない
008.                     1 : 改行は<br/>タグに変換する
009. 
010. mt_allow_comments : 0 : 受付しない/表示しない
011.                     1 : 受付/表示
012.                     2 : 受付しない/表示
013.                     3 : 受付/承認後表示
014.************************************************************
015.</COMMENT>
016. 
017.<OBJECT id="objHTTP" progid="Msxml2.XMLHTTP" />
018. 
019.<SCRIPT language=VBScript>
020.' ***********************************************************
021.' 処理開始
022.' ***********************************************************
023.' ソース内テキストデータの表示
024.str = RegTrim(GetResource("myTextData"))
025.'Wscript.Echo str
026. 
027.Call objHTTP.Open( "POST","https://ssl.seesaa.jp/blog/rpc", False )
028.' POST 用 HTTP ヘッダ
029.Call objHTTP.setRequestHeader("Content-Type", "text/xml" )
030.Call objHTTP.setRequestHeader("User-Agent", "WSH : lightbox" )
031.Call objHTTP.SetRequestHeader("Content-Length",Len(str))
032.Call objHTTP.Send(str)
033. 
034.Set objList = objHTTP.responseXML.getElementsByTagName("string")
035.PostID = objList.item(0).firstChild.nodeValue
036. 
037.str = Replace(RegTrim(GetResource("myTextData2")),"$PostID", PostID )
038.'Wscript.Echo str
039. 
040.Call objHTTP.Open( "POST","https://ssl.seesaa.jp/blog/rpc", False )
041.' POST 用 HTTP ヘッダ
042.Call objHTTP.setRequestHeader("Content-Type", "text/xml" )
043.Call objHTTP.setRequestHeader("User-Agent", "WSH : lightbox" )
044.Call objHTTP.SetRequestHeader("Content-Length",Len(str))
045.Call objHTTP.Send(str)
046. 
047.'Wscript.Echo objHTTP.responseText
048. 
049.' GUI
050.MsgBox( "処理が終了しました   " )
051. 
052.' ***********************************************************
053.' 文字列前後の漢字スペースを含むホワイトスペースの削除
054.' ***********************************************************
055.Function RegTrim( strValue )
056. 
057.    Dim regEx, str
058. 
059.    Set regEx = New RegExp
060.    regEx.IgnoreCase = True
061.    regEx.Pattern = "^[ \s]+"
062.    str = regEx.Replace( strValue, "" )
063.    regEx.Pattern = "[ \s]+$"
064.    RegTrim = regEx.Replace( str, "" )
065. 
066.End Function
067.</SCRIPT>
068. 
069.<COMMENT>
070.************************************************************
071. ソース内テキストデータ
072.************************************************************
073.</COMMENT>
074.<RESOURCE id="myTextData">
075.<![CDATA[
076.<?xml version="1.0" encoding="UTF-8"?>
077.<methodCall>
078.    <methodName>metaWeblog.newPost</methodName>
079.    <params>
080.        <param>
081.            <value>
082.                <string>ブログ番号</string>
083.            </value>
084.        </param>
085.        <param>
086.            <value>メールアドレス</value>
087.        </param>
088.        <param>
089.            <value>
090.                <string>パスワード</string>
091.            </value>
092.        </param>
093.        <param>
094.            <value>
095.                <struct>
096.                    <member>
097.                        <name>title</name>
098.                        <value>
099.                            <string>XML-RPCで投稿中</string>
100.                        </value>
101.                    </member>
102.                    <member>
103.                        <name>description</name>
104.                        <value>
105.                            <string>なんでまともな仕様書が無いのでしょう</string>
106.                        </value>
107.                    </member>
108.                    <member>
109.                        <name>dateCreated</name>
110.                        <value>
111.                            <dateTime.iso8601>20100630T21:06:01</dateTime.iso8601>
112.                        </value>
113.                    </member>
114.                    <member>
115.                        <name>mt_convert_breaks</name>
116.                        <value>
117.                            <string>0</string>
118.                        </value>
119.                    </member>
120.                    <member>
121.                        <name>mt_allow_comments</name>
122.                        <value>
123.                            <int>3</int>
124.                        </value>
125.                    </member>
126.                </struct>
127.            </value>
128.        </param>
129.    </params>
130.</methodCall>
131.]]>
132.</RESOURCE>
133. 
134.<RESOURCE id="myTextData2">
135.<![CDATA[
136.<?xml version="1.0" encoding="UTF-8"?>
137.<methodCall>
138.    <methodName>mt.setPostCategories</methodName>
139.    <params>
140.        <param>
141.            <value>
142.                <string>$PostID</string>
143.            </value>
144.        </param>
145.        <param>
146.            <value>メールアドレス</value>
147.        </param>
148.        <param>
149.            <value>
150.                <string>パスワード</string>
151.            </value>
152.        </param>
153.        <param>
154.            <value>
155.                <array>
156.                    <data>
157.                        <value>
158.                            <struct>
159.                                <member>
160.                                    <name>categoryId</name>
161.                                    <value>
162.                                        <int>カテゴリ番号</int>
163.                                    </value>
164.                                </member>
165.                            </struct>
166.                        </value>
167.                    </data>
168.                </array>
169.            </value>
170.        </param>
171.    </params>
172.</methodCall>
173.]]>
174.</RESOURCE>
175. 
176.</JOB>

















   SQLの窓    create:2010/06/01  update:2018/02/18   管理者用(要ログイン)





フリーフォントWEBサービス

SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ