« 2012年2月 | トップページ

2012年3月

2012年3月29日 (木)

blogger.newPostをお試し

一つ前の投稿はblogger.newPostを使用して投稿しました。
前回のプログラムのxml作成部分を下記に変えるだけで投稿できました。

username、passwordはココログにログインするときのIDとパスワードです。
blogidはココログの管理画面にログインした時のURLから判断できます。

http://app.f.cocolog-nifty.com/t/app/weblog/manage?blog_id=xxxxx

xxxxxがブログIDです。


data.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
data.append("<methodCall>");
data.append("<methodName>blogger.newPost</methodName>");
data.append("<params>");

// appkey
data.append(" <param><value><string>test</string></value></param>");

// blogid
data.append(" <param><value><string>xxxxx</string></value></param>");

// username
data.append(" <param><value><string>username</string></value></param>");

// password
data.append(" <param><value><string>password</string></value></param>");

// content
data.append(" <param><value><string>テスト投稿</string></value></param>");

// publish
data.append(" <param><value><boolean>false</boolean></value></param>");

data.append("</params>");

data.append("</methodCall>");

今回は本文のみの投稿です。
タイトルやカテゴリーが引数にないのでどうすればいいのかは次回までに調査します。

テスト投稿

2012年3月17日 (土)

リンクシェア

リンクシェアに登録しました。

バナー掲載するだけで報酬もらえるものからはじめようと思います。

リンクシェア・ジャパンのレビューアフィリエイトで報酬をもらおう

2012年3月15日 (木)

順番に試そう(blogger.newPost)

前回で使えるメソッドが取得できましたので次は上から順番に試したいと思います。

まずはblogger.newPost。

新しい記事を投稿するメソッドのようです。

詳しくは下記を。

http://www.na.rim.or.jp/~tsupo/program/blogTool/mt_xmlRpc.html

引数は以下の6つ
String appkey
String blogid
String username
String password
String content
boolean publish

ココログではappkeyは適当でいいらしい
blogid=andouroido
username=@niftyユーザー名?
password=パスワード
content=記事の内容
publish=0(公開)

って感じかな?

とりあえず前回のプログラムのxml文字列作成をちょちょいと変えて試してみよう。

2012年3月14日 (水)

mt.supportedMethods

サーバーがサポートするXML-RPCメソッドについての情報を取得するメソッドです。
最初text/xmlしか設定してなかったので取得に失敗していました。
text/xml;charset=utf-8;を追加することによって正常に取得できました。

ソース

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.Socket;
import java.net.URL;


public class RpcTest1 {

public static void main(String args[]) {

OutputStream os = null;
OutputStreamWriter osw = null;
InputStream is = null;
BufferedReader br = null;

try {

URL url = new URL("https://app.f.cocolog-nifty.com/t/api");
HttpURLConnection con = (HttpURLConnection) url.openConnection();

con.setDoOutput(true);
con.setDoInput(true);

con.setRequestMethod("POST");
con.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4321)");
con.setRequestProperty("Host","my.host.com");
con.setRequestProperty("Content-Type", "text/xml;charset=utf-8");

HttpURLConnection.setFollowRedirects(false);
con.setInstanceFollowRedirects(false);

os = con.getOutputStream();//POST用のOutputStreamを取得

StringBuffer data = new StringBuffer();//POSTするデータ
osw = new OutputStreamWriter(os);

data.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
data.append("<methodCall>");
data.append("<methodName>mt.supportedMethods</methodName>");
data.append("</methodCall>");

osw.write(data.toString());//データをPOSTする
osw.flush();

is = con.getInputStream();//POSTした結果を取得
br = new BufferedReader(new InputStreamReader(is));
String s;
while ((s = br.readLine()) != null) {
System.out.println(s);
}


} catch (Exception e) {

if (osw != null) {
try {
osw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}

if (os != null) {
try {
os.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}

if (br != null) {
try {
br.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}

if (is != null) {
try {
is.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}

e.printStackTrace();

}

}

}

実行結果

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<string>blogger.newPost</string>
</value>
<value>
<string>blogger.editPost</string>
</value>
<value>
<string>blogger.getRecentPosts</string>
</value>
<value>
<string>blogger.getUsersBlogs</string>
</value>
<value>
<string>blogger.getUserInfo</string>
</value>
<value>
<string>blogger.deletePost</string>
</value>
<value>
<string>metaWeblog.getPost</string>
</value>
<value>
<string>metaWeblog.newPost</string>
</value>
<value>
<string>metaWeblog.editPost</string>
</value>
<value>
<string>metaWeblog.getRecentPosts</string>
</value>
<value>
<string>metaWeblog.newMediaObject</string>
</value>
<value>
<string>mt.getCategoryList</string>
</value>
<value>
<string>mt.setPostCategories</string>
</value>
<value>
<string>mt.getPostCategories</string>
</value>
<value>
<string>mt.getTrackbackPings</string>
</value>
<value>
<string>mt.supportedTextFilters</string>
</value>
<value>
<string>mt.getRecentPostTitles</string>
</value>
<value>
<string>mt.publishPost</string>
</value>
<value>
<string>mt.setNextScheduledPost</string>
</value>
<value>
<string>wp.newPage</string>
</value>
<value>
<string>wp.editPage</string>
</value>
<value>
<string>wp.deletePage</string>
</value>
<value>
<string>wp.getPage</string>
</value>
<value>
<string>wp.getPages</string>
</value>
<value>
<string>wp.getComments</string>
</value>
<value>
<string>wp.editComment</string>
</value>
<value>
<string>wp.deleteComment</string>
</value>
</data>
</array>
</value>
</param>
</params>
</methodResponse>