ameblo APIの仕様変更について(メモ)
アメブロですが、去年の11月21日あたりの仕様変更で外部投稿ができなくなったのでやっとこさ修正しました。
今までcurlでやっていたのですが、PearからRequest.phpをダウンロードして下記のコードに修正。
とりあえず忘れそうなのでメモ。
require_once 'HTTP/Request.php';
$atomapi_url = "http://atomblog.ameba.jp/servlet/_atom/blog";
$user_id = "ユーザID";
$password = "パスワード";
$title = "日記のタイトル";
$body = "お腹減った!!!";
$created = date('Y-m-d\TH:i:s\Z');
$nonce = sha1(md5(time()));
$pass_digest = base64_encode(pack('H*', sha1($nonce.$created.strtolower(md5($password)))));
$wsse =
'UsernameToken Username="'.$user_id.'", '.
'PasswordDigest="'.$pass_digest.'", '.
'Nonce="'.base64_encode($nonce).'", '.
'Created="'.$created.'"';
$req = new HTTP_Request($atomapi_url);
$req -> addHeader( 'X-WSSE',$wsse );
$req -> addHeader('Content-Type', 'application/x.atom+xml');
$req -> sendRequest();
$res = $req -> getResponseBody();
preg_match('/rel="service.post" type="application\/x\.atom\+xml" href="(.*?)"/',$res,$postURl);
$rawdata = sprintf('
',$title,$body);
$req = new HTTP_Request($postURl[1]);
$req->addHeader('X-WSSE',$wsse );
$req->addRawPostData($rawdata);
$req->addHeader('Content-Type', 'application/x.atom+xml');
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->sendRequest();
$code = $req -> getResponseCode();
$req->clearPostData();
Headerに'Content-Type', 'application/x.atom+xml'を追加するだけで良かったらしいのですが、curlでやってみたらダメでしたね・・・。
$codeは201が返ってきたら成功です。
今更?JavariのAPIを試してみた。
Javari.jp向けのProduct Advertising APIですが、Amazon Helpのほうにも記載されてました。
最初は少してこずりましたが、何とかできました。
AWSAccessKeyIdがあれば大丈夫だろうと思ってましたが、Secret Access
Keyを見落としてました。
上記のページは2010年くらいのバージョンなので、仕様変更されたBASE64 エンコード方式でリクエストを行わないとエラーで返ってくるばかりでした。
その際にSecret Access Keyを入れて、リクエストの末尾に署名を追加となってます。
次にキーワード(Keyword)を日本語で検索しても検索結果0件ばかり。
試しに英単語(shoes、bag、watch)で検索したら正常に取得できました。
一応、ResponseGroupにSalesRank(売り上げ順)を入れてるのですが、本当に売り上げ順なのかが不安です(^^;
ちなみにNewReleases(新着)で行うとエラーになります。
Javariの画面ではプルダウンに、「おすすめ」、「新着商品」、「価格の高い順」、「価格の安い順」とあるので、NewReleasesのエラーは何なんでしょう・・・。
上記のソースで作ったものをブログに貼って、久しぶりにAmazonさんにアフィリエイト登録の申請を行いましたが結果はNGでした。
プログラム頼りの内容の薄いページと判断されたみたいでした。
それであればプログラム頼みではなく、Javariのページで、おすすめや自分のおすすめなどを紹介したほうが一番ですよね。
そして紹介文を添えるなど。
当たり前ですが、アフィリエイトて本来はそういうものなんですよね。
FCブログのソーシャルボタンについて
先日、FC2ブログソーシャルボタンが付かないからコーディングのほうでやるしかなさそうって書いてしまいましたけど、普通に出来ますね(^^;
普段からChromeを使ってるんですけど、広告とかが頻繁に出てくるのでAdblockをプラグインしてました。
ずーっとONのままでブログの更新とかもやっていたので、FC2ブログを更新する際にJavascriptが動作せずブログの書き込みが出来なくて困ったことがありました。
なので一旦AdBlockをOffにしてあげてF5で更新(最読込)してあげれば上手くいきました。
あれを思い出して、環境設定〜ソーシャルボタンを有効にするにチェックを入れてあげたら正常にボタンが入ってくれました。
だから先日のコードはカスタマイズしたいときにGoogle+や、他のソーシャルボタンなどを埋め込むのに使えそうです。
という無理のあり過ぎる言い訳でご勘弁を(^^;
Jugemブログがインデックスされない。
Jugemのテンプレート結構好きなんですけど、一つだけ難点が!?
Google、Yahooなど検索エンジンにインデックスされないところです。
Pingの設定を行っても1ヶ月経とうが表示されないです。(多分今も・・・。)
なのでブログや他サイトからバックリンクを貼ってあげるしかなさそうです。
例1)
Youtubeに動画を上げたいけど、リーズナブルな値段のビデオカメラ比較したいけど、どこかないかな・・・。
例2)
忘年会シーズンでビール腹になってしまった!?メタボだけは避けたい、ダイエット・健康通販サイトで探してみようかな。
凄いわざとらしい文章ですが、こんな感じで貼ってあげます。
文章はもっとSEM的な視点からも考えたほうがいいですねw
ただこういうバックリンクをたくさん行うとNGなので、とりあえずインデックスされる一つの方法として用いてください。
結構Jugemブログ好きなので、Jugemさんよろしくお願いします!
FC2ブログの記事の下にソーシャルボタンが付かないので自分で埋め込んでみた。
後日ブログで書き直したのでOKだとは思うんですが、一応こちらにも。
GoogleChromeを使っている方でAdBlockをOnにしている方は一旦Offにしてください。
「環境設定」〜「記事の設定」の下のほうにTwitterとFacebookボタンのとこに有効のチェックボックスがあるので、そこにチェックを入れておいてください。
テンプレートのコード側からも埋め込み可能です。
カスタマイズしたい場合は、
「テンプレートの設定」をび、HTMLとCSSの編集画面が表示されます。
HTML側のほうのコードに、
<div class="entry_body">
<%topentry_body>
と書かれている箇所がありますので、その下にカスタマイズしたいコードなどを記載してください。
ネット通販お買い得&トレンド商品情報サイトを更新しました。
放置していたサイトをやっとこさ更新しました(^^;
まだ完全ではないですけど、とりあえず新着情報は設置しました。
新着のカテゴリは、ノートパソコン、メンズファッション、レディースファッション、ホーム&キッチン、家電、DIY・工具、レディース腕時計、メンズ腕時計、レディースバッグ、本・書籍、ミュージック、ゲームなどなどです。
時間が出来たら、もう少しカテゴリを増やしてみようかと思います。
機能としては新着情報、人気ランキング、激安グッズ、商品検索と毎度毎度のオーソドックスです。
新着(トレンド)情報、人気ランキングは最新(1時間ごと更新)の情報が閲覧できるので、良かったら覗いてみてください。
近くにショップが無いかたや、ネット通販好きなかたには結構オススメだと思います。
作っていて気付いたのが、検索機能で激安情報とか新作情報とかヒットするんですね。
例)2013 メンズ ジャケット 流行
例)2013 レディース コート 流行
例)ブランド 財布 激安
Googleほど細かく探すのは無理ですが、やっぱり大手サイトだと助かります。
量産系の動的サイトなのでGoogleさんが好まないコーディングですが、本家のAmazon(フォーム変更多いのが悩みの種)、楽天、Yahooショッピングのフォーマットが解り難いので合体させてみました(やっていいのかな?)
殆ど個人的に見てチェックしてることが多いですけどねw