UIOP+さまがこちらにてCode Signingを成功させるより手軽な方法を提供しています。
この方法ならば再ログインの必要がない上、Xcode以外のアプリケーションでは日本語環境のままなのでうれしいですね。
2009年3月31日火曜日
2009年3月15日日曜日
memo_NSDateから日時・時間を取得する方法
// Assume that (NSDate *)date already exists.
NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
unsigned int flags = NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit |
NSHourCalendarUnit |
NSMinuteCalendarUnit |
NSSecondCalendarUnit;
NSDateComponents *components = [calendar components:flags fromDate:date];
[calendar release];
// Here, you can get information about (NSDate *)date
// by using methods year, month, day, hour, minute, and second of instance (NSCalendar *)components.
[components release];
参考:
【Cocoa】NSDateから日時の値を取得する
2009年3月14日土曜日
2009年1月8日木曜日
2008年12月14日日曜日
memo_FiveStars!の作り方(Amazon Associates Web Service編)
FiveStars!を作る上で勉強したことをまとめておく。
Amazon Associates Web Serviceへのリクエストをどこへ送信するかは、どの国のデータベースを検索・参照するかによって異なる。
- ecs.amazonaws.ca/onca/xml(カナダ)
- ecs.amazonaws.de/onca/xml(ドイツ)
- ecs.amazonaws.fr/onca/xml(フランス)
- ecs.amazonaws.jp/onca/xml(日本)
- ecs.amazonaws.co.uk/onca/xml(イギリス)
- ecs.amazonaws.com/onca/xml(アメリカ)
これらのエンドポイントに、例えばHarry Potterというキーワードで検索するには
http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService // (1)などとする。なお、スペースは使えないので"%20"としていることに注意。
&AWSAccessKeyId=[Your Access Key ID] // (2)
&Operation=ItemSearch // (3)
&SearchIndex=Books // (4)
&Keywords=Harry%20Potter // (5)
#実際には一行で書く。
以降、このリクエストについて説明して行く。
(1). 一行目
決まり文句。
エンドポイントの".com"の部分は検索・参照したい国によって".jp"となったり、".co.uk"となったりする。
(2). 二行目
[Your Access Key ID]の部分には、それぞれのアクセスキーを入れる。アクセスキーの参照はAmazon Web Servicesへログイン後、"Your Account"メニューの"Access Identifier"から可能。
(3). 三行目
データベースからの検索を行うには、Operationパラメータに"ItemSearch"を指定する。他にこのパラメータには"ItemLookup"(参照)、"CartCreate"(商品を入れるカートの生成)などがある。(Operationパラメータによって他に必要なパラメータが変わってくるので、次回は各Operation毎に使い方をまとめる予定。)
(4). 四行目と(5). 五行目
"Books"カテゴリから"Harry Potter"というキーワードを含む商品を検索するという意味。
この部分はItemSearchというOperationパラメータに特有のもの。
このリクエストに対するレスポンス
きちんと必要なパラメータが渡せていれば、XMLで正しい結果が戻るはず。
上の例ではキーワードにヒットした商品の情報がItemSearchResponse->Items->Itemに格納されている。
memo_FiveStars!の作り方
FiveStars!を作る上で勉強したことをまとめていく。
まず、準備として、アマゾン・Webサービスを利用するにはここでユーザとして登録する。
これはアマゾンの商品データベースを検索・参照するために必要。
また、アマゾンへのトラフィックを作ることによって収益を得たいと思うならば、各国のアマゾン・アソシエイトとして登録する必要がある。
ただし、アマゾン・アソシエイトの方は、収益を得たいと思っている国の全てで登録しなければならない。(Webサービスの方は利用できる全ての国で共通のアカウント)
次にサイトの構成。
今回はAjaxを利用することで、ユーザからの操作に対してページ内の必要な部分のみを更新して行くような設計にした。
大体、次のような感じ。
- サーバ側
AmazonAWS.php
<?phpサーバ側のAmazonAWS.phpは、クライアントからのリクエストをアマゾン・Webサービスのエンドポイント(http://ecs.amazonaws.jp/onca/xml)に送り、そのレスポンスをJSONに変換してクライアントに返す。
define("KEY_ID", "Your Access Key ID");
define("ASSOCIATE_ID", "Your Associate ID");
$request = "http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService";
$request.="&AWSAccessKeyId=".KEY_ID;
$request.="&AssociateTag=". ASSOCIATE_ID;
$request.="&Operation=ItemSearch";
$request.="&SearchIndex=" . $_GET["SearchIndex"];
$request.="&Title=" . $_GET["Title"];
$request.="&Author=" . $_GET["Author"];
$request.="&Publisher=" . $_GET["Publisher"];
$request.="&Keywords=" . $_GET["Keywords"];
$response = file_get_contents($request);
$xml = simplexml_load_string($response);
$json = json_encode($xml);
echo($json);
?>
index.html
<html>クライアントはアマゾンの商品データベースへの検索フィールドを送り、返ってきたJSON形式のレスポンスから必要な情報を抽出する。上の例では検索結果のタイトルをリストにして表示する。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Testing Amazon Associates Web Service</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var option = {
success: function(json) {
$("#SearchResults").empty();
for (var i = 0; i < json.Items.Item.length; i++) {
$("#SearchResults")
.append(
$("<li></li>")
.html(json.Items.Item[i].ItemAttributes.Title)
);
}
},
dataType: "json"
};
$("#ajaxForm").ajaxForm(option);
});
</script>
</head>
<body>
<form id="ajaxForm" action="AmazonAWS.php" method="get">
<table>
<tr><td>タイトル</td><td><input type="text" name="Title"></td></tr>
<tr><td>著者</td><td><input type="text" name="Author"></td></tr>
<tr><td>出版社</td><td><input type="text" name="Publisher"></td></tr>
<tr><td>キーワード</td><td><input type="text" name="Keywords"></td></tr>
</table>
<input type="radio" name="SearchIndex" value="Books" checked>和書
<input type="radio" name="SearchIndex" value="ForeignBooks">洋書
<button type="submit">検索</button>
</form>
<ul id="SearchResults"></ul>
</body>
</html>
また、今回はjQueryを利用することでソースコードを簡略化しているので、上の例を動作させるためにはjQueryとそのフォームプラグインが必要となる。
登録:
投稿 (Atom)