ラベル api の投稿を表示しています。 すべての投稿を表示
ラベル api の投稿を表示しています。 すべての投稿を表示

2017年5月28日日曜日

初めてのLaravel参考サイト

メモ。

試しにログイン周りを自動生成してみる。
Laravelの標準Authentication(Auth)の動きを調べてみる - Qiita

Specified key was too longというエラーが出たら。
Laravel 5.4: Specified key was too long error - Laravel News

RESTなAPIを作ってみる。微妙に古い?
開発の進め方きめごと - Qiita

次はこれかな。
Laravel 5.4でWeb APIを作る : アシアルブログ

2014年8月17日日曜日

楽天とAmazonの任意のページについて アフィリエイト用URLを作る方法

楽天

  1. 自分の楽天アフィリエイトのアカウントについての下記のようなURLをどこか(楽天APIとか)から入手する。
    http://hb.afl.rakuten.co.jp/hgc/<この部分はアカウントごとに違う>/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Frb%2Fxxxxxxxxxx%2F
  2. 上記URLの、"http"以降を表示したいページのURLをURLエンコードしたものに差し替える。

Amazon
  • 表示したいページのURLに"?tag=<自分のアカウントのタグ>"を追加する。
    ただし、ページのURLのにクエリーパラメータがある(URLに"?"を含む)場合は"?tag"の"?"を"&"に変える。
  • Amazon公式のリンクの動作確認ツールがあるので、これで確認するとよい。(タグ追加直後はうまく動作しない?)

動作確認はこれから。

2011年5月25日水曜日

Twitterで情報収集するための便利ツールまとめ

Twitterで情報を集める上で便利なツールを集めてみた。

  • Advanced Twitter Search
    • Twitter自身によるTwitter Searchの詳細版
    • 要はTwitter Search Operatorsを使いやすいようにフォームにしたということか
    • キーワードはもちろん、発言者や言及先のユーザー、ユーザーの場所などいろいろ検索オプションがある
      • ユーザーの場所については、実は主にユーザーのプロフィールに書かれている場所からジオコーディングして取得してるだけなので結構間違ってたりする
    • OR検索は小文字の「or」ではなく大文字の「OR」なので注意
    • URLで検索すると、短縮URLは短縮前のURLで検索してくれる
    • 検索結果をRSSフィードで購読できる
    • Twitter本家からリンクしていないのはなぜ?
  • Google リアルタイム検索
    • Twitter等へのPOSTをリアルタイムで検索できる
    • Googleだけあって検索能力はTwitter Searchよりも強力
      • 例えば語句の揺れ(ひらがな⇔カタカナ、日本語⇔英語、タイプミス、等)に強いとか
    • 検索対象にFacebook等が加わったらしいけど、いまだに日本ではTwitterが独占状態
  • なんでも速報 Tweets on the Map
    • Googleリアルタイム検索の地図版
    • お天気専門の天気速報
  • ホームページのつぶやき見える君(仮)
    • ブラウザで表示中のページのURLを含むTweetを表示してくれるChrome拡張 & Firefox用Greasemonkey
    • 短縮URLでも拾ってくれる
  • Twitter Streaming API
    • Twitter等へのPOSTをリアルタイムで取得できるAPI
      • 通常は取得できる内容に制限がある
      • 制限なしで全Tweetを取得できるStreaming APIの「Firehose」の提供先にdocomoが加わったのは記憶に新しい
    • APIなのでプログラムができないと使えない
    • キーワードを指定しての取得は、日本語には対応していない
    • 解説(英語):Streaming API Documentation | dev.twitter.com
    • PHPでTwitter Streaming APIを使って特定のキーワードを追跡する例:P2_Service_Twitter

2011年4月19日火曜日

Google Font APIはどうやってマルチブラウザ対応しているのか

WebFontsを読み込む場合のCSSの書き方はブラウザごとに異なるため、こんなsyntaxを使う必要がある。
しかし、Google Font APIで読み込むCSSをではそんな書き方はしていない。
そこで、試しにTangerineのCSSを各ブラウザで読み込んでみて、Google Font APIがどのようにマルチブラウザ対応をしているのか調べてみた。


IE 8

@font-face {
  font-family: 'Tangerine';
  font-style: normal;
  font-weight: normal;
  src: url('http://themes.googleusercontent.com/font?kit=HGfsyCL5WASpHOFnouG-RPY6323mHUZFJMgTvxaG2iE');
  src: local('Tangerine'), url('http://themes.googleusercontent.com/font?kit=HGfsyCL5WASpHOFnouG-RD8E0i7KZn-EPnyo3HZu7kw') format('woff');
}
URLはIE専用。
2行目のsrcはIE9用?


Firefox 4
@font-face {
  font-family: 'Tangerine';
  font-style: normal;
  font-weight: normal;
  src: local('Tangerine'), url('http://themes.googleusercontent.com/font?kit=HGfsyCL5WASpHOFnouG-RD8E0i7KZn-EPnyo3HZu7kw') format('woff');
}
URLはChromeと同じ。


Chrome 10
@media screen {
@font-face {
  font-family: 'Tangerine';
  font-style: normal;
  font-weight: normal;
  src: local('Tangerine'), url('http://themes.googleusercontent.com/font?kit=HGfsyCL5WASpHOFnouG-RD8E0i7KZn-EPnyo3HZu7kw') format('woff');
}
}
URLはFirefoxと同じ。
@mediaでscreenだけにしているのはAndroid対策か何かか?


Safari 5 (for Windows)
@font-face {
  font-family: 'Tangerine';
  font-style: normal;
  font-weight: normal;
  src: local('Tangerine'), url('http://themes.googleusercontent.com/font?kit=HGfsyCL5WASpHOFnouG-RKCWcynf_cDxXwCLxiixG1c') format('truetype');
}
URLはSafari用(Operaと共通)。アンダーバーで区切ってるのはiPhone用(iOS用?)が別にあったりするためか?


Opera 11

@font-face {
  font-family: 'Tangerine';
  font-style: normal;
  font-weight: normal;
  src: local('Tangerine'), url('http://themes.googleusercontent.com/font?kit=HGfsyCL5WASpHOFnouG-RKCWcynf_cDxXwCLxiixG1c') format('truetype');
}
URLはSafariと同じ。OperaもTrueType組。


まとめ
おそらくUser-Agentで判断して振り分けているだけのようだ。
フォントファイルは大きく分けると下記の3つに分かれるようだ。
  • IE8-
  • IE9+、Firefox、Chrome
  • Safari、Opera


参考:Webフォント (Webfonts)を使う際の最新記述方法 Fontspring Syntax (The New Bulletproof@Font-Face Syntax) - フォントブログ

2010年9月6日月曜日

Google Maps API (V2)を iPadで使う場合の注意点

各所でiPadには対応していないを書かれているGoogle Maps API V2だが、やってみたら使えた。
以前使ったときには確かに対応していなかったと思うが、最近対応したのだろうか?Change Logにも書かれていないが...。

ただしiPadでは動きが変わる点があったのでメモ。


注意点1
GMarkerに対してdisableDragging()すると、iPadではそのマーカーをクリックしてもclickイベントを感知できないようだ。

対策としてはdisableDragging()しないこと。ドラッグしたいなら、代わりにドラッグ用のGMarkerを表示して、ドラッグが終わったらドラッグ先の場所に元のマーカーを移動して表示する、とすればたいてい間に合うのではないだろうか。


注意点2
こちらはAPIとは関係ないが、Google Mapsで経路検索結果を表示する場合の行き方(乗り物)を指定するパラメータのうち、電車についてのパラメータの値がiPad/iPhoneの場合は特殊なので注意。
詳しくはこちら → GoogleMapの経路検索で、車、電車、徒歩を指定するURL - iRSSの日記

2010年3月3日水曜日

電車の乗り換え案内のWebサービス API

あまりはやらないんだろうねえ。

2009年12月15日火曜日

Google Maps API V3と V2の機能比較

列挙しようかと思ったがけっこうありそうなので、とりあえず思いついたものだけメモ。


V2になくてV3にあるもの

  • 複数の吹き出し(InfoWindow)を同時に表示できる


V2にあってV3にないもの
  • ストリートビュー
  • Overview(右下の縮小地図)
  • Polygonの面積の取得
  • Polylineの長さの取得
  • GoogleBar(検索ボックス)
  • AdsManager

2009年12月2日水曜日

もう一歩踏み込んでGoogle Maps APIを使いこなすための12の参考サイト

(2010/09/02:情報が古くなっていたので全面的に改定)


Google Codeにあるもの(全て英語)

Google Maps JavaScript API V2 Reference - Google Maps JavaScript API V2 - Google Code

  • Google Maps API V2(Version 2)のリファレンス
  • V2は既にDeprecatedだが、V3にはまだ無い機能もあるので場合によってはV2が必要になる
  • 日本語のリファレンスはどこにいった?(以前からUpdateが追いついていなかったが...)

Google Maps Javascript API V3 Reference - Google Maps JavaScript API V3 - Google Code
  • Google Maps API V3 (Version 3)のリファレンス
  • V2には無かった円を描く機能がある

gmaps-utility-library-dev - Project Hosting on Google Code

google-maps-utility-library-v3 - Project Hosting on Google Code
  • Google Maps API V3のための準公式プラグイン集
  • だいぶ増えてきた
  • Google Maps API V3にはまだ無いOverview Controlを追加するプラグインもある

gmaps-api-v3-googlebar - Project Hosting on Google Code
  • Google Maps API V3にはまだ無いGoogleBar(Local Search Control、検索窓)を追加するプラグイン

google-maps-icons - Project Hosting on Google Code

Dynamic Icons - Google Chart Tools / Image Charts (aka Chart API) - Google Code
  • Google Chart APIの、動的にアイコンを生成する機能
  • 生成したアイコンはGoogle Mapsのマーカー画像として使える

gmaps-api-issues - Project Hosting on Google Code
  • Google Maps APIへの要望やバグ報告など

(おまけ)
Google Mapsの中心人物だったPameraさんのGoogle Code上のプロジェクト一覧
pamela.fox - Project Hosting on Google Code



その他


Google Maps 活用講座 - GoogleマップAPIの使い方を分かりやすく解説!
  • 初心者から上級者まで参考になりそう

Google Mapsをほどよくカスタマイズしてお手軽に表示 - Google Mapper [ゼロと無限の間に]
  • Google Maps API V2をサクッと使うためのプラグイン

Google Maps API V3を使って地図をお手軽に表示 - Google Mapper V3 [ゼロと無限の間に]
  • Google Maps API V3をサクッと使うためのプラグイン

2009年8月12日水曜日

Rubyの ActiveResource調査メモ





基本:

 ActiveResourceでいろんなAPIを叩いてみる。標的はHotpepper API - 富士山は世界遺産


発行されるURLと拡張子について:
 天使やカイザーと呼ばれて: ActiveResourceで拡張子なしのURIを発行する方法


応用編:
 ActiveResource の使い方(前編) : Rails 同士で通信する - WebOS Goodies
 ActiveResource の使い方(中編) : メソッドの詳細 - WebOS Goodies
 (後編は? 2009/09/17追記:公開された↓)
 ActiveResource の使い方(後編) : 一般の Web API にアクセスする - WebOS Goodies


ActiveResourceのバグ?
 [PATCH] ActiveResource find(:all) method returns "NoMethodError: undefined method `collect!'... - lambda {|diary| lambda { diary.succ! } }.call(hatena)
取得するXMLがn件のデータを包含する要素を持つ形の場合、包含する要素に属性type="array"が無いと「collect!メソッドが無いよ!」というエラーが発生する問題。

たとえばこれだとエラーになる。(n件のmemberを、membersという要素で包含している。)

<?xml version="1.0" encoding="UTF-8"?>
<menbers>
 <member>
  <id>1</id>
  <id>name</id>
 </member>

</menbers>

type="array"を付ければエラーにならない。
<?xml version="1.0" encoding="UTF-8"?>
<menbers type="array">
 <member>

  <id>1</id>
  <id>name</id>
 </member>

</menbers>


PHPで Google Maps APIのジオコーディングを使う例

Google Maps APIは基本的にJavaScriptから呼び出すが、ジオコーディング(住所等から緯度経度を求めること)についてはJavaScript以外からでもRESTに取得できる。

PHPで呼び出す場合の例。
APIキーはJavaScriptの場合と違ってドメインごとに取得する必要は無いようだ。(どこかのドメイン用に取得したキーを使える。)

<?php
$apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

$place = '京都';

$url = 'http://maps.google.com/maps/geo?';
$params = array(
 'q' => $place,
 'key' => $apiKey,
 'sensor' => 'false',
 'output' => 'json',
);
$results = json_decode(file_get_contents($url . http_build_query($params)));

echo '<pre>';
var_dump($results);
var_dump($http_response_header);
echo '</pre>';


参考:サービス - Google Maps API - Google Code

2009年7月28日火曜日

PHPで Twitterの Search APIを使って検索する例

例えばこんな感じ。

<?php
$url = 'http://search.twitter.com/search.json';
$params = http_build_query(array('q' => 'なう', 'lang' => 'ja', 'rpp' => 3));
$results = json_decode(file_get_contents("$url?$params"));

echo '<pre>';
var_dump($results);
var_dump($http_response_header);
echo '</pre>';


PythonやRubyと比べると、PHPは標準関数でいろいろなことができるなーと実感する。


参考:Twitter API Wiki / Twitter Search API Method: search

2009年6月5日金曜日

IE8で Google Mapsの地図をクリックするとポイントがずれる

Google Maps APIを使って自分のサイトにGoogle Mapsを表示してIE8を使って見ると、地図上のクリックしたところでイベントが起きずに、かなりずれた所がクリックされたことになってしまう。

現時点で根本的な解決策は無いらしい。

次善の策として、metaタグの<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />等によりIE7モードで動作させればこの問題は発生しない。
ただし、もしそのページをIE8用に何かしていたら無効になってしまうけど。

本家Google Mapsを見たら、やはりmetaタグでIE7モードにしていた。


参考:
 IE8とGoogle Mapsのclickイベント - ここのことはなかったことにするかも
 IE 8 Problem with Click Point - Google Maps API | Google グループ
 Issue 1055 - gmaps-api-issues - Wrong latlng value in click handler with IE8/RC1 - Google Code

2009年5月13日水曜日

PEAR::Services_Amazonで Product Advertising APIの電子署名認証を使うサンプル

PEAR::Services_Amazonから最新版(現在0.8.0)を入手する。

pear upgrade -a Services_Amazon-0.8.0

使い方は、SECRET KEYが必須になった以外は今まで通りでOK。
require_once('Services/Amazon.php');

//Services_AmazonECS4ではなく、Services_Amazonの方を使う
$amazon = new Services_Amazon('ACCESS_KEY', 'SECRET_KEY');

//Base URLをhttp://ecs.amazonaws.jp/onca/xmlにする
$amazon ->setLocale('JP');

//デフォルトは現在最新の"2009-03-31"
//$amazon ->setVersion('2009-xx-xx');

$res = $amazon ->ItemSearch('Books', array(
 'Keywords' => 'Ruby on Rails',
 'Sort' => 'daterank',
 'ResponseGroup' => 'Small,Images',
));


参考:Amazon Product Advertising API への対応(PHP版) - もやし日記


(2009/05/17 PEARコマンドの誤りを修正)

2009年5月7日木曜日

Google Maps APIの InfoWindowが仕様変更されてた

いつの間にかGoogle Maps APIに仕様変更があったようで、openInfoWindowHtml()をした直後に、情報Window内のエレメントにアクセスすることができなくなった。

それまでは、こんな感じでアクセスできた。

gmarker.openInfoWindowHtml('<a href="foo" id="bar">baz</a>');
var bar = document.getElementById("bar");

情報Windowが表示されたらイベントがFireするので、それをListenするようにしたら解決した。
gmarker.openInfoWindowHtml('<a href="foo" id="bar">baz</a>');
GEvent.addListener(gmarker, "infowindowopen", function(){ ... });

参考:
 Google Maps API リファレンス - Google Maps API - Google Code
 infowindowopen

2008年10月13日月曜日

郵便番号検索APIのまとめ

無償のもののみピックアップ。
住所からの検索ができるものが意外に少ない。



(2011/07/21 追記)
今ならGoogle日本語入力のAPI(Google CGI API for Japanese Input)を使うという手もある。
参考:floatingdays: Web form用入力ヘルパー JavaScriptライブラリいろいろ
サンプル:GAddress Finder 動作サンプル - ゼロと無限の間に

2008年10月3日金曜日

Flickr services (Flickr API)で写真検索

写真検索のマニュアルはFlickr Services: Flickr API: flickr.photos.search

必須のパラメータは api_key。

キーワード的なものでの検索のパラメータは text。

sortは、

  • デフォルトは date-posted-desc
  • ただし radial geo query の場合は指定したポイントからの ascending distance
  • 指定可能な値
    • date-posted-asc
    • date-posted-desc
    • date-taken-asc
    • date-taken-desc
    • interestingness-desc = 人気の高い順
    • interestingness-asc

licenseで指定する値は、Flickr Services: Flickr API: flickr.photos.licenses.getInfoのExample Response欄を参照。


PHPなら、Serialized PHP Response Formatでの取得が一番手軽そう。

2008年9月20日土曜日

CakePHP 1.2で WebService APIを利用する

Webで公開されているAPIからデータを取得したりデータを送信するBehaviorがBakeryで公開されている。

Webservice Behavior (Articles) | The Bakery, Everything CakePHP

HTTP GET、HTTP POST、XMLRPCが使えるようだ。


GETしたいだけならオーバースペックかも。
POSTもcURLを使わずに、PHPでPOSTリクエストを送信する - PHPプロ!ニュースの方がシンプルでいいかも?


参考:CakePHP1.2のBehaviorを使う - 院生エンジニアのにっき

2008年9月6日土曜日

楽天アフィリエイトのPC用 URLと 携帯用URLとの違い

楽天アフィリエイトのPC用URLと携帯用URLの関連性について。公式な資料が無いので推測を元に調査してみる。


楽天Webサービスでの説明を見ると、PC用と携帯用のアフィリエイトURLは別になっている。

http://hb.afl.rakuten.co.jp/hgc/[アフィリエイトID]/?pc=[商品URL(PC)]
もしくは、
http://hb.afl.rakuten.co.jp/hgc/[アフィリエイトID]/?m=[商品URL(モバイル)]
ちなみに、楽天Webサービスで商品URLを取得する場合にはRequestのパラメータとしてPC用か携帯用かどちらかを指定するため、両方の商品URLを1度に取得することはできない。


楽天のアフィリエイト作成ツールでは、PC・携帯共通URLを作成できる。

例(分かりやすいようにURLデコード&改行してある)
http://hb.afl.rakuten.co.jp/hgc/[アフィリエイトID]/?
pc=http://www.rakuten.co.jp/verjus/827100/665544/705842/#845704
&m=http://m.rakuten.co.jp/verjus/i/845704/

これを見るとPC用URLから携帯用URLを作成できそうだが、楽天の商品URLには下記の2種類のタイプがある。
A. http://item.rakuten.co.jp/monoshop/dul_ch06_k282/

B. http://www.rakuten.co.jp/t-plaza/710008/716540/#727421
Aが昔ながらのURL?
Bは携帯からも見られる商品用のURL?
いくつかデータを見てみると、Bの場合は色違いなどで複数の商品から選べるアイテムのようだ。この例の場合、"710008" "716540"の2種類。4種類くらいのアイテムもあり、その場合スラッシュ区切りで4つのコードが並ぶ。おそらく最後のシャープ付のIDで内部的には制御してるようだ。

さらに調べると、携帯版の楽天とPC向けの楽天では商品数がかなり違う。PCの方が数倍多い。
しかも、携帯版の楽天はドメインがwww.rakuten.co.jpのアイテムのみが対象になってる(ような気がする)。(数えるほどしか調べてないのでたまたまそういうデータを見ただけかもしれないが。)

ただし、wwwで始まる商品でも携帯版楽天で探してもヒットしないものもあるので、wwwで始まれば携帯からアクセスできるというわけではないようだ。
よく見たらwwwで始まりPCでしかヒットしない商品は全て品切れだった。たくさんのデータで検証したわけではないが、このサブドメインの違いで携帯からのアクセスが可能か判断できそう。


結論(ただし推測)
サブドメインがwwwの商品のみ、携帯版楽天からアクセスできる。その場合、下記のアフィリエイトURLによりPC・携帯で共通のアフィリエイトリンクになる。
(見やすくするために改行したが実際には改行しない。また、パラメータのURL部分はURLエンコードすること)
http://hb.afl.rakuten.co.jp/hgc/[アフィリエイトID]/?
pc=http://www.rakuten.co.jp/[ショップID]/.../.../.../#[商品ID的なもの]
&m=http://m.rakuten.co.jp/[ショップID]/i/[商品ID的なもの]/
モバイル用の"i"の部分とかは怪しいかも。

2008年7月30日水曜日

Amazon Web Serviceの Search Indexって

今はDVDってあるけど、将来はBlu Rayになるのかな?
それともDVDはDVDで残るのかな?
仕様変更による影響が大きそう…

2008年7月28日月曜日

Amazon Webサービスのパラメータ

一番よく使う商品の検索(ItemSearch Operation)の主なパラメータについてのメモ。

大元のリファレンスはAmazon Web Services: Amazon E-Commerce Service
フレームになっていてリンクし辛いので、説明ページへのリンクはフレーム内の個別ページへのリンクにした。

  • Operation
    • リクエストの種類。(必須項目)
    • 固定で「ItemSearch」
  • SearchIndex
  • Keywords
    • 任意のキーワード
    • タイトルや著者など多くのデータを対象に探してくれるので、アバウトな検索に便利。
  • ItemPage
    • 検索結果ページ数。ItemSearchでは1回のリクエストで最大10個のデータを返す。11個目以降が欲しければページ数を指定する。
    • 何も指定しなければ1ページ目が返される。つまりトップ10.
  • Sort
    • 並び順
    • 説明ページ:Sort Values for JP
    • SearchIndexがBlendedの場合は指定できない(エラーになる)
    • リリース順で取得したい場合に、DVD・CDと本ではパラメータが違うので注意
  • ResponseGroup
    • 取得データ内容
    • 説明ページ:Response Groups
    • 「Small,Images」あたりを基本に、必要に応じてTracksとかCustomerReviewsとかを追加すればたいてい間に合う

ブログ アーカイブ

tags