Contenu connexe Similaire à Movable Type 6の新機能 Data APIの活用法 (20) Plus de Hajime Fujimoto (20) Movable Type 6の新機能 Data APIの活用法16. Data APIの登場
• Movable Typeに対してWeb APIの形式でアク
セスする機能
• 生データを取得可能
• データの更新/削除も可能
• プログラム言語を問わない
• JavaScript用ライブラリあり
• HTTPアクセス/JSONパースができれば良い
• PHP、Ruby、Node.js、Objective-C、Java、etc.
16
24. Objective-C(iOS)で記事投稿
NSURL *url = [NSURL URLWithString:@"http://your-host/path-to-mt/mt-data-api.cgi/v1/sites/ウェブサイト
(またはブログ)のID/entries"];
NSDictionary *entry = @{
@"title": 記事のタイトル,
@"body": 記事の本文
};
NSData *json = [NSJSONSerialization dataWithJSONObject:entry
options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonstr = [[NSString alloc] initWithData:json encoding:NSUTF8StringEncoding];
NSString *json_encoded =
(__bridge_transfer NSString *) CFURLCreateStringByAddingPercentEscapes(
NULL, (__bridge CFStringRef)jsonstr, NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8
);
NSString *query = [NSString stringWithFormat:@"entry=%@", json_encoded];
NSData *reqbody = [query dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request =
[NSMutableURLRequest requestWithURL: url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[request setHTTPMethod: @"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [reqbody length]]
forHTTPHeaderField:@"Content-Length"];
[request setValue:[NSString stringWithFormat:@“MTAuth accessToken=%@”,アクセストークン]
forHTTPHeaderField:@"X-MT-Authorization"];
[request setHTTPBody:reqbody];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {・・・}];
24
25. Java(Android)で記事投稿
AsyncHttpClient client = new AsyncHttpClient();
JSONObject entry = new JSONObject();
try {
entry.put("title", タイトル);
entry.put("body", 本文);
} catch (JSONException e) {
e.printStackTrace();
}
RequestParams params = new RequestParams();
params.put("entry", entry.toString());
Header[] headers = new Header[1];
headers[0] = new BasicHeader(“X-MT-Authorization”, “MTAuth
accessToken=アクセストークン”);
String url = "http://your-host/path-to-mt/mt-data-api.cgi/v1/sites/ブログ
(またはウェブサイト)のID/entries";
client.post(getBaseContext(), url, headers, params, “application/x-wwwform-urlencoded”, new JsonHttpResponseHandler() {…};
25
29. 各種の動的処理
• 記事等の検索
• Data APIで検索条件を渡し、結果を取得してレ
ンダリング
• メインページやアーカイブページのページ
分割
• 各ページへのアクセスの際に、Data APIでデー
タを取得してレンダリング
29
35. Data API
• Movable TypeをRESTで操作する仕組み
• 各種オブジェクトの作成/読込/更新/削
除が可能
• Webアプリやネイティブアプリの開発に利
用可能
35
38. MTDDC Meetup NAGOYA 2014
• Movable Typeのセミナーイベント
• 2014年1月18日(土) 12:30~18:30
• ウインクあいち(名古屋駅近く)
38