묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
외부 MetaWeblog 글쓰기 기능 php로 혹시 작성가능한가요?
2008.10.01 14:30
외부 MetaWeblog 글쓰기 기능 php로 혹시 작성가능한가요?
컴터에 지식이 없는 제가 자동 글 수집하는 걸 해보고 싶었는데,
우째우째하다보니 여기까지 왔습니다.
폼테그로 전송하려니 답이 안보이고, MetaWeblog를 지원한다고 해서 제로보드 openapi소스와 전송할수 있는 소스를 찾아봤습니다.
어디서 아래의 소스를 배껴왔습니다.
그런데 제 홈피주소는
http://urin79.com/zb이고
글쓰기를 할곳은 http://urin79.com/zb/blog 입니다.
그럼...$g_blog_url = http://urin79.com/zb 인가요? http://urin79.com/zb/blog/api 인가요?
$g_id ,$g_passwd 이거는 맞게 넣으면 될것같고,
function metaWeblog_newPost( $blogid(블로그mid), $title(글제목), $content(글내용), $tags(테그), $category=""(카테고리))
metaWeblog_newPost( 0, "test title", "content should be added here", "tag1,tag2"); 인가요?
아니면 이거와는 완전별도로 제로보드의 openapi소스에 나오는 변수들을 대입해야 되나요?
깝깝합니다. 어디 물어볼만한데도 없고... 주위에 아는사람들이 없어서요.
선상님들 좀 갈켜주시면 안될까요?
컴터에 지식이 없는 제가 자동 글 수집하는 걸 해보고 싶었는데,
우째우째하다보니 여기까지 왔습니다.
폼테그로 전송하려니 답이 안보이고, MetaWeblog를 지원한다고 해서 제로보드 openapi소스와 전송할수 있는 소스를 찾아봤습니다.
어디서 아래의 소스를 배껴왔습니다.
그런데 제 홈피주소는
http://urin79.com/zb이고
글쓰기를 할곳은 http://urin79.com/zb/blog 입니다.
그럼...$g_blog_url = http://urin79.com/zb 인가요? http://urin79.com/zb/blog/api 인가요?
$g_id ,$g_passwd 이거는 맞게 넣으면 될것같고,
function metaWeblog_newPost( $blogid(블로그mid), $title(글제목), $content(글내용), $tags(테그), $category=""(카테고리))
metaWeblog_newPost( 0, "test title", "content should be added here", "tag1,tag2"); 인가요?
아니면 이거와는 완전별도로 제로보드의 openapi소스에 나오는 변수들을 대입해야 되나요?
깝깝합니다. 어디 물어볼만한데도 없고... 주위에 아는사람들이 없어서요.
선상님들 좀 갈켜주시면 안될까요?
<?php
//requires xmlrpc.inc from http://phpxmlrpc.sourceforge.net/
require_once('xmlrpc.inc');
$g_blog_url = "http://demoblog.kurapa.com/api/";
$g_id = "kurapa@kurapa.com";
$g_passwd = "*****";
$GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';
function metaWeblog_newPost( $blogid, $title, $content, $tags, $category="")
{
global $g_id;
global $g_passwd;
global $g_blog_url;
$client = new xmlrpc_client( "{$g_blog_url}");
$f = new xmlrpcmsg("metaWeblog.newPost", // metaWeblog.newPost method
array(
new xmlrpcval("{$blogid}", "string"), // blogid.
new xmlrpcval($g_id, "string"), // user ID.
new xmlrpcval($g_passwd, "string"), // password
new xmlrpcval( // body
array(
'title' => new xmlrpcval($title, "base64"),
'description' => new xmlrpcval($content, "base64"),
'category' => new xmlrpcval($category, "base64"),
'mt_keywords' => new xmlrpcval($tags, "base64")
), "struct"),
new xmlrpcval(true, "boolean") // publish
)
);
$f->request_charset_encoding = 'UTF-8';
$response = $client->send($f);
}
metaWeblog_newPost( 0, "test title", "content should be added here", "tag1,tag2");
?>
//requires xmlrpc.inc from http://phpxmlrpc.sourceforge.net/
require_once('xmlrpc.inc');
$g_blog_url = "http://demoblog.kurapa.com/api/";
$g_id = "kurapa@kurapa.com";
$g_passwd = "*****";
$GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';
function metaWeblog_newPost( $blogid, $title, $content, $tags, $category="")
{
global $g_id;
global $g_passwd;
global $g_blog_url;
$client = new xmlrpc_client( "{$g_blog_url}");
$f = new xmlrpcmsg("metaWeblog.newPost", // metaWeblog.newPost method
array(
new xmlrpcval("{$blogid}", "string"), // blogid.
new xmlrpcval($g_id, "string"), // user ID.
new xmlrpcval($g_passwd, "string"), // password
new xmlrpcval( // body
array(
'title' => new xmlrpcval($title, "base64"),
'description' => new xmlrpcval($content, "base64"),
'category' => new xmlrpcval($category, "base64"),
'mt_keywords' => new xmlrpcval($tags, "base64")
), "struct"),
new xmlrpcval(true, "boolean") // publish
)
);
$f->request_charset_encoding = 'UTF-8';
$response = $client->send($f);
}
metaWeblog_newPost( 0, "test title", "content should be added here", "tag1,tag2");
?>
결국 성공했습니다 ㅎㅎ id, 제목, 내용 글 올릴 수 있습니다. xe 메타 블로그 api 기능을 통해서 말이죠 php로
아래는 제가 성공한 php 문서입니다.
아래 파일과 xmlrpc.inc 파일이 같은 폴더내에 있어야합니다.(xmlrpc파일은 아래 주석설명 참조)
<?php
//requires xmlrpc.inc from http://phpxmlrpc.sourceforge.net/
//!!중요!! xmlrpc파일이 필요함, 위 주소로 가서 zip파일을 다운로드, 압축해제후 lib폴더에 있는 xmlrpc.inc파일을 같은 폴더에 추가.
require_once('xmlrpc.inc');
$g_blog_url = "설치경로/모듈명/api";
$g_id = "xe아이디";
$g_passwd = "비번";
$GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';
function metaWeblog_newPost( $blogid, $title, $content)
{
global $g_id;
global $g_passwd;
global $g_blog_url;
$client = new xmlrpc_client( "{$g_blog_url}");
$f = new xmlrpcmsg("metaWeblog.newPost", // metaWeblog.newPost method
array(
new xmlrpcval("{$blogid}", "string"), // blogid.
new xmlrpcval($g_id, "string"), // user ID.
new xmlrpcval($g_passwd, "string"), // password
new xmlrpcval( // body
array(
'title' => new xmlrpcval($title, "string"),
'description' => new xmlrpcval($content, "string"),
), "struct"),
new xmlrpcval(true, "boolean") // publish
)
);
$f->request_charset_encoding = 'UTF-8';
$response = $client->send($f);
echo $blogid.$title.$content.$tags.$category;
}
$blogid="xe아이디(관리자일 경우 admin)";
$title="제목";
$content="내용";
metaWeblog_newPost( $blogid, $title, $content);
?>