C# Apps MetaWeblogAPI C# 코드 샘플

2019.02.08 14:16

졸리운_곰 조회 수:252

 

 

MetaWeblogAPI C# 코드 샘플

이 C# 샘플은 MetaWeblog API에서 지원하는 모든 메서드를 사용하는 방법을 보여 줍니다.

 

예제
 
 

이 C# 코드 예제는 MetaWeblog API에서 지원하는 모든 메서드를 사용하는 방법을 보여 줍니다. 이 예제를 통해 외부 프로그램에서 웹 로그 게시물의 텍스트 및 특성을 가져오고 설정할 수 있습니다. 이 예제는 클라이언트 응용 프로그램과 웹 로그 서버 간 통신을 위한 XML-RPC 프로토콜을 사용합니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 
 
using System; 
using CookComputing.XmlRpc; 
using System.Net; 
  
namespace MetaWeblogApi 
{ 
  
  
/// <summary> 
/// This struct represents information about a user's blog. 
/// </summary> 
[XmlRpcMissingMapping(MappingAction.Ignore)] 
struct UserBlog{ 
public string url; 
public string blogid; 
public string blogName; 
} 
  

/// <summary> 
/// This struct represents information about a user. 
/// </summary> 
[XmlRpcMissingMapping(MappingAction.Ignore)] 
struct UserInfo{ 
public string url; 
public string blogid; 
public string blogName; 
public string firstname; 
public string lastname; 
public string email; 
public string nickname; 
} 
  
  
/// <summary> 
/// This struct represents the information about a category that could be returned by the 
/// getCategories() method. 
/// </summary> 
[XmlRpcMissingMapping(MappingAction.Ignore)] 
struct Category{ 
public string description;
public string title; 
} 
  
/// <summary> 
/// This struct represents the information about a post that could be returned by the 
/// editPost(), getRecentPosts() and getPost() methods. 
/// </summary> 
[XmlRpcMissingMapping(MappingAction.Ignore)] 
struct Post {
public DateTime dateCreated;
public string description;
public string title; 
public string postid;   
public string[] categories;
} 
  
/// <summary> 
/// This class can be used to programmatically interact with a Weblog on 
/// MSN Spaces using the MetaWeblog API. 
/// </summary> 
[XmlRpcUrl("https://storage.msn.com/storageservice/MetaWeblog.rpc")] 
class MsnSpacesMetaWeblog : XmlRpcClientProtocol { 
  
  
/// <summary> 
/// Returns the most recent draft and non-draft blog posts sorted in descending order by publish date. 
/// </summary> 
/// <param name="blogid"> This should be the string MyBlog, which indicates that the post is being created in the user’s blog. </param> 
/// <param name="username"> The name of the user’s space. </param> 
/// <param name="password"> The user’s secret word. </param> 
/// <param name="numberOfPosts"> The number of posts to return. The maximum value is 20. </param> 
/// <returns></returns> 
[XmlRpcMethod("metaWeblog.getRecentPosts")] 
public Post[] getRecentPosts( 
string blogid, 
string username, 
string password, 
int numberOfPosts){ 

return (Post[]) this.Invoke("getRecentPosts", new object[]{ blogid, username, password, numberOfPosts});  
} 
  

        /// <summary> 
        /// Posts a new entry to a blog. 
        /// </summary> 
/// <param name="blogid"> This should be the string MyBlog, which indicates that the post is being created in the user’s blog. </param> 
/// <param name="username"> The name of the user’s space. </param> 
/// <param name="password"> The user’s secret word. </param> 
/// <param name="post"> A struct representing the content to update. </param> 
        /// <param name="publish"> If false, this is a draft post. </param> 
        /// <returns> The postid of the newly-created post. </returns> 
        [XmlRpcMethod("metaWeblog.newPost")] 
public string newPost( 
string blogid, 
string username, 
string password, 
Post content, 
bool publish){ 

return (string) this.Invoke("newPost", new object[]{ blogid, username, password, content, publish});  
} 
  
/// <summary> 
/// Edits an existing entry on a blog. 
/// </summary> 
/// <param name="postid"> The ID of the post to update. </param> 
/// <param name="username"> The name of the user’s space. </param> 
/// <param name="password"> The user’s secret word. </param> 
/// <param name="post"> A struct representing the content to update. </param> 
/// <param name="publish"> If false, this is a draft post. </param> 
/// <returns> Always returns true. </returns> 
[XmlRpcMethod("metaWeblog.editPost")] 
public bool editPost( 
string postid, 
string username, 
string password, 
Post content, 
bool publish){ 

return (bool) this.Invoke("editPost", new object[]{ postid, username, password, content, publish});  
} 
  
/// <summary> 
/// Deletes a post from the blog. 
/// </summary> 
/// <param name="appKey"> This value is ignored. </param> 
/// <param name="postid"> The ID of the post to update. </param> 
/// <param name="username"> The name of the user’s space. </param> 
/// <param name="password"> The user’s secret word. </param> 
/// <param name="post"> A struct representing the content to update. </param> 
/// <param name="publish"> This value is ignored. </param> 
/// <returns> Always returns true. </returns> 
[XmlRpcMethod("blogger.deletePost")] 
public bool deletePost( 
string appKey, 
string postid, 
string username, 
string password,
bool publish){ 

return (bool) this.Invoke("deletePost", new object[]{ appKey, postid, username, password,  publish});  
} 
  

/// <summary> 
/// Returns information about the user’s space. An empty array is returned if the user does not have a space. 
/// </summary> 
/// <param name="appKey"> This value is ignored. </param> 
/// <param name="postid"> The ID of the post to update. </param> 
/// <param name="username"> The name of the user’s space. </param> 
/// <returns> An array of structs that represents each of the user’s blogs. The array will contain a maximum of one struct, since a user can only have a single space with a single blog. </returns> 
[XmlRpcMethod("blogger.getUsersBlogs")] 
public UserBlog[] getUsersBlogs( 
string appKey, 
string username, 
string password){ 
  
return (UserBlog[]) this.Invoke("getUsersBlogs", new object[]{ appKey,  username, password});  
} 
  
/// <summary> 
/// Returns basic user info (name, e-mail, userid, and so on). 
/// </summary> 
/// <param name="appKey"> This value is ignored. </param> 
/// <param name="postid"> The ID of the post to update. </param> 
/// <param name="username"> The name of the user’s space. </param> 
/// <returns> A struct containing profile information about the user. 
/// Each struct will contain the following fields: nickname, userid, url, e-mail, 
/// lastname, and firstname. </returns> 
[XmlRpcMethod("blogger.getUserInfo")] 
public UserInfo getUserInfo( 
string appKey, 
string username, 
string password){ 
  
return (UserInfo) this.Invoke("getUserInfo", new object[]{ appKey,  username, password});  
} 
  
  
/// <summary> 
/// Returns a specific entry from a blog. 
/// </summary> 
/// <param name="postid"> The ID of the post to update. </param> 
/// <param name="username"> The name of the user’s space. </param> 
/// <param name="password"> The user’s secret word. </param> 
    /// <returns> Always returns true. </returns> 
[XmlRpcMethod("metaWeblog.getPost")] 
public Post getPost( 
string postid, 
string username, 
string password){ 

return (Post) this.Invoke("getPost", new object[]{ postid, username, password});  
} 
  
/// <summary> 
/// Returns the list of categories that have been used in the blog. 
/// </summary> 
/// <param name="blogid"> This should be the string MyBlog, which indicates that the post is being created in the user’s blog. </param> 
/// <param name="username"> The name of the user’s space. </param> 
/// <param name="password"> The user’s secret word. </param> 
/// <returns> An array of structs that contains one struct for each category. Each category struct will contain a description field that contains the name of the category. </returns> 
[XmlRpcMethod("metaWeblog.getCategories")] 
public Category[] getCategories( 
string blogid, 
string username, 
string password){ 
  
return (Category[]) this.Invoke("getCategories", new object[]{ blogid, username, password});  
} 
  
/// <summary> 
/// The main entry point for the application. 
/// </summary> 
[STAThread] 
static void Main(string[] args) {
  
MsnSpacesMetaWeblog mw = new MsnSpacesMetaWeblog(); 
string username = "!Space3*Pqc3*yUo00Y0!"; 
string password = "mYsEcReTwOrD"; 
mw.Credentials = new NetworkCredential(username, password); 
  
try{ 
  
  // Space3Pqc3yUo00Y0 
Post post = new Post(); 
post.categories = new string[]{"Test Posts"}; 
post.title = "Tets 3"; 
post.description = "This is my 3rd test post"; 
post.dateCreated = DateTime.Now; 
  
string id = mw.newPost("MyBlog", username, password, post, true); 
  
post.title = "Test 3 (typo fixed)";
  
mw.editPost(id, username, password, post, true); 

post = mw.getPost(id, username, password); 
Console.WriteLine("Just edited the post with the title '{0}' at '{1}'", post.title, post.dateCreated); 
  
/* display list of categories used on the blog */ 
Category[] categories = mw.getCategories("MyBlog", username, password); 

foreach(Category c in categories){ 
Console.WriteLine("Category: {0}", c.description); 
} 
  
/* display title of the ten most recent posts */ 
Post[] posts = mw.getRecentPosts("MyBlog", username, password, 10); 
  
foreach(Post p in posts){ 
Console.WriteLine("Post Title: {0}", p.title); 
} 
  
mw.deletePost(String.Empty, id, username, password, true); 
Console.WriteLine("The post entitled '{0}' has been deleted", post.title); 
  
/* get info on user's blogs */ 
UserBlog[] blogs = mw.getUsersBlogs(String.Empty, username, password); 

foreach(UserBlog b in blogs){ 
Console.WriteLine("The URL of '{0}' is {1}", b.blogName, b.url); 
} 
  
/* get info on the user */ 
UserInfo user = mw.getUserInfo(String.Empty, username, password); 
Console.WriteLine("{0} {1} ({2}) is the owner of the space whose URL is {3}", user.firstname, user.lastname, user.email, user.url); 

  
}catch(XmlRpcFaultException xrfe){ 
Console.WriteLine("ERROR: {0}", xrfe.FaultString); 
} 
  
Console.ReadLine(); 
} 

}

}
 

[출처] https://msdn.microsoft.com/ko-kr/library/aa905670.aspx

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
100 Visual Studio 2010 Ultimate 정식버전 전환, 정식버전, 정식버전 사용 졸리운_곰 2020.07.26 44
99 Selenium C# Webdriver Tutorial: NUnit Example file 졸리운_곰 2020.01.03 68
98 VB로 웹페이지 읽어오기 - 웹 스크랩 file 졸리운_곰 2020.01.03 174
97 [C# 인공지능] 유전 알고리즘 : 유전 알고리즘으로 컴퓨터 자동 프로그래밍 AI-Programmer file 졸리운_곰 2019.12.28 230
96 C# 기초로 한글 검색기(초성 포함) 만들기 [Step by Step] file 졸리운_곰 2019.12.11 1384
95 (C#.NET 한글 프로그램 제작) 한글 조립 및 분해 하기 (유니코드 Unicode) file 졸리운_곰 2019.12.11 267
94 C#에서 유니코드를 이용한 한글 자모 분리와 결합 졸리운_곰 2019.12.11 1203
93 [C#] GUID 생성. file 졸리운_곰 2019.02.27 166
92 MetaWeblogAPI VisualBasic .NET 코드 샘플 졸리운_곰 2019.02.08 272
» MetaWeblogAPI C# 코드 샘플 졸리운_곰 2019.02.08 252
90 A Look into the Future - Source Code Generation by the Bots file 졸리운_곰 2019.01.23 164
89 Machine Learning with ML.Net and C#/VB.Net file 졸리운_곰 2018.12.14 463
88 Scientific graphics in C# - [part 2] file 졸리운_곰 2018.12.06 3868
87 Scientific graphics in C# [part 1] file 졸리운_곰 2018.12.06 144
86 Window 7 Enterprise 64bit에 vb6 (visual studio 6.0 ent버젼) 설치 file 졸리운_곰 2018.12.04 363
85 Application Trial Maker file 졸리운_곰 2018.11.22 191
84 C# 프로젝트에서 C++ 코드 사용 : Use C++ codes in a C# project — unmanaged C++ solution 졸리운_곰 2018.10.30 199
83 C# 으로 구현하는 간단한 뉴럴네트워크 : Implementing Simple Neural Network in C# file 졸리운_곰 2018.10.30 326
82 Machine Learning with ML.Net and C#/VB.Net file 졸리운_곰 2018.08.16 827
81 오픈소스 닷넷 라이브러리 Awesome .NET! file 졸리운_곰 2018.07.08 2190
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED