<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>ametocoroさんのﾌﾞﾛｸﾞ</title>
<link>https://ameblo.jp/ametocoro/</link>
<atom:link href="https://rssblog.ameba.jp/ametocoro/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>ﾌﾞﾛｸﾞの説明を入力します。</description>
<language>ja</language>
<item>
<title>WordPressプラグインの修正その２ 【WordPressからMixiへの連携】</title>
<description>
<![CDATA[ WordPress記事内に埋め込まれた画像というのはただIMG要素のHREF属性でURLのパスが指定されているだけだから、mixiに日記を投稿する際には一度バイナリファイルを取得するかWordPress内部のアップロード済みファイルのディレクトリパスを取得するか、どちらかの方法で実バイナリファイルを指定しなければいけないようだ。<br><br>今回はPEARのHTTP_Requestクラスを使っているのでaddFileメソッドで画像を送信する。本メソッドで引数に指定できるのはバイナリファイルのパスで、バイナリのデータそのものを渡す方法は提供されてないようだ。URLで画像を渡すこともできないらしい。なのでWordPressに実際にアップされたファイルのパスを取得してaddFileすることにする。<br><br>WordPressの関数で使えそうな関数はこれ。<br><a href="http://elearn.jp/wpman/function/wp_upload_dir.html">wp_upload_dir - アップロードディレクトリ（パス名）を取得する</a><br><br>メディア設定オプションによってアップロード先は変わってしまうようだけど、とりあえずカレントのパスが取得できれば使用上は問題なさそう。<br><br>for( $i=1; $i &lt;= count($images); $i++ ) {<br>$paths = preg_split('/\//', $images[$i-1]);<br>$filename = $paths[count($paths) - 1];<br>$upload_dir = wp_upload_dir();<br>$path = $upload_dir['path'] . '/'. $filename;<br>$photo = "photo" . $i;<br>$request-&gt;addFile($photo, $path, "image/jpeg");<br>}<br><br>こんな感じでmixi Diary APIに指定されたファイル名でaddFileしてあげると、うまくいくんじゃないだろうか。<br><br>試しに画像をぺたり。<br><br><a href="http://hinamizawa.com/wordpress/wp-content/uploads/IMG_1419.jpg"><img src="https://stat.ameba.jp/user_images/20130408/09/ametocoro/31/87/j/o0300022512492706993.jpg"></a><br><br>サッカー場に行ったらGoogleストリートビューを撮影していた。こういう機材で撮ってたのか。<br><br><a href="http://hinamizawa.com/archives/617" target="_blank">WordPressプラグインの修正その２ 【WordPressからMixiへの連携】【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11507244405.html</link>
<pubDate>Mon, 08 Apr 2013 09:43:21 +0900</pubDate>
</item>
<item>
<title>Wordpressプラグインの修正 【WordPressからMixiへの記事投稿】</title>
<description>
<![CDATA[ 既存のmixi投稿用のWordpressプラグインは、今は廃止されたAPIを使っていて、WSSE認証で接続したあとでAtom APIエンドポイントに画像とテキストを投稿するようになっている。なので認証をOAuthに、Atom APIエンドポイントへの投稿をmixi Graph APIエンドポイントへの投稿にそれぞれ書き換えてあげれば同じように動く。<br><br>画像の使用に関しては、Diary APIを通じて3枚まで行える従来方式の他、Photo APIを使って事前にアップロードしておいて、レスポンスで返ってくるMediaItem IDを使って以下のように本文に埋め込めるようになった。<br><br>&lt;photo src="v2:「Photo APIで取得したフォト情報のMediaItem ID」"&gt;<br><br>参照：<a href="http://developer.mixi.co.jp/connect/mixi_graph_api/mixi_io_spec_top/diary-api/">Diary API</a><br><br>これならば日記1項目につき写真3枚までという制約がなくなるので、いくらでも画像を使えるようになりそう。アメブロもこれに少し似ていて、画像投稿用エンドポイントに画像をアップロードするとレスポンスで画像のURLを取得できるので、HTML本文でIMG要素のHREF属性で指定してあげるだけで画像を表示できる。おそらくこちらも何枚でも画像が使えるんじゃないかと思われる。<br><br><a href="http://hinamizawa.com/archives/581" target="_blank">Wordpressプラグインの修正 【WordPressからMixiへの記事投稿】【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11507241978.html</link>
<pubDate>Mon, 08 Apr 2013 09:37:57 +0900</pubDate>
</item>
<item>
<title>Google ストリートビュー撮影風景</title>
<description>
<![CDATA[ Googleストリートビューによるサッカー場内の撮影。<br><br>桜並木のストリートビューなどはこうやって自転車に取り付けた機器で撮っている模様。だから車が映り込まないんだろう。<br><a href="http://www.google.co.jp/landing/japanview/index.html#cherryblossoms">ストリートビューで巡る日本の名所　- 桜巡り編</a><br><br>屋内の撮影はまた別の機材かも。<br><br><a href="http://hinamizawa.com/wordpress/wp-content/uploads/IMG_1419.jpg"><img src="https://stat.ameba.jp/user_images/20130408/04/ametocoro/b9/7a/j/o0300022512492579455.jpg"></a><br><br><a href="http://hinamizawa.com/wordpress/wp-content/uploads/IMG_1421.jpg"><img src="https://stat.ameba.jp/user_images/20130408/04/ametocoro/7b/88/j/o0300022412492579456.jpg"></a><br><br><a href="http://hinamizawa.com/wordpress/wp-content/uploads/IMG_1422.jpg"><img src="https://stat.ameba.jp/user_images/20130408/04/ametocoro/d7/1f/j/o0300022512492579457.jpg"></a><br><br><a href="http://hinamizawa.com/archives/645" target="_blank">Google ストリートビュー撮影風景【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11507168444.html</link>
<pubDate>Mon, 08 Apr 2013 04:59:49 +0900</pubDate>
</item>
<item>
<title>三軒茶屋の潰れてしまった映画館</title>
<description>
<![CDATA[ <a href="http://hinamizawa.com/wordpress/wp-content/uploads/IMG_1415.jpg"><img src="https://stat.ameba.jp/user_images/20130407/16/ametocoro/0d/cd/j/o0225030012491651322.jpg"></a><br><br>何度も行った三軒茶屋の映画館。チケットが安いうえ2本立てや3本立てで上映していた。半券を持っていけば1000円だったかな？入れ替え制では無いのも良かった。ソクーロフの映画を観た時は寝不足だったこともあって何度も途中で眠ってしまい、3回目でやっと通して観れたという憶えがある。<br><br><a href="http://hinamizawa.com/archives/611" target="_blank">三軒茶屋の潰れてしまった映画館【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11506746627.html</link>
<pubDate>Sun, 07 Apr 2013 16:01:50 +0900</pubDate>
</item>
<item>
<title>Ameba APIの利用 【WordPressからアメブロへの連携】</title>
<description>
<![CDATA[ Amebaでもセマンティックウェブで使えるグラフデータのAPIを公開してるんじゃないかと探してみたら、既にあったので驚いた。Ameba APIという名前。<br><br><a href="https://maward.ameba.jp/">Ameba Developer Center</a><br><br>何より自分があれだけ色々検索してまったく気が付いてなかったということに驚いた。<br><br>何はともあれやったーと喜んでデベロッパー登録しようとしたら、応募期間終了につき登録も終了していた。どうやら期間限定のコンテストでAPIを小出しにしてユーザーの利用方法をテストして様子をうかがっている模様。どんどんオープン化していくアメリカ式サービスに対して、クローズドが好まれる日本式サービスという、考え方の違いなんだろうけど、このままだとmixiの二の舞になりそう。ただ、mixiのように真正面からFacebookにぶつかっていくというのも戦略としては中々厳しいものがあるので、日本式のグローバリゼーションを模索する事は確かに必要なんだろうな。<br><br>それはそれとして、前年度でATOM APIが廃止されてしまったmixiとは違ってまだアメブロではこのAPIの利用が可能なので、しばらくは様子見でいいかな。<br><br><a href="http://hinamizawa.com/archives/552" target="_blank">Ameba APIの利用 【WordPressからアメブロへの連携】【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11506448869.html</link>
<pubDate>Sun, 07 Apr 2013 02:00:09 +0900</pubDate>
</item>
<item>
<title>Diary APIを使った日記の投稿（画像も）【WordPressからMixiへの記事投稿】</title>
<description>
<![CDATA[ OAuth認証までは問題なかったので、いよいよDiary APIを使って日記を投稿してみた。<br><br>参考：<a href="http://developer.mixi.co.jp/connect/mixi_graph_api/mixi_io_spec_top/diary-api/">Diary API（mixi Developer Center）</a><br><br>最初はこの公式解説通りのマルチパートになるようにPOST送信用のリクエストボディを自分で書いてみたのだけど、ただ何かが間違っているようでエンドポイントに送ってみてもエラーが出てしまった。<br><br>参考にしたのはこのサイト。<br><br><a title="PHPでPOSTメソッドを使って送信する" href="http://www.d-labo.net/laboratory/php/7001.php">PHPでPOSTメソッドを使って送信する</a><br><br>この手の抽象性の低い処理でのエラー修正はかなり面倒という気がしたので、とりあえずPEARのHTTP_Requestを使って画像を添付してリクエストしてみたら、あっさりと送信できた。こちらはPerlでmixi日記に投稿している人のページが参考になった。<br><br><a href="http://t2aki.doncha.net/?id=1341282666">mixi graphの日記APIで写真つき投稿</a><br><br>テストのPHPのコードの一部はこんな感じ。各種トークンの有効期間切れ対応は無し。<br><br><br># RefreshTokenを使ったAccessTokenの取得<br><br>// トークン取得エンドポイント<br>$host = MIXI_TOKEN_ENDPOINT;<br>// 送信データ<br>$data = array(<br>"grant_type" =&gt; "refresh_token",<br>"client_id" =&gt; $consumer_key,<br>"client_secret" =&gt; $consumer_secret,<br>"refresh_token" =&gt; $refresh_token,<br>);<br>// PEAR::HTTP_Requestによるmixi Graph APIの認証処理<br>$request = new HTTP_Request($host);<br>$request-&gt;setMethod(HTTP_REQUEST_METHOD_POST);<br>// 認証はapplication/x-www-form-urlencodedで<br>$request-&gt;addHeader('Content-Type', 'application/x-www-form-urlencoded');<br>// Content-Typeに合わせてhttp_build_queryでクエリ文字列に変換してaddRawPostDataで追加<br>$request-&gt;addRawPostData(http_build_query($data));<br>if (PEAR::isError($request-&gt;sendRequest())) {<br>die('request failed');<br>}<br>//レスポンスはJSON形式なので配列にデコードして利用<br>$response = json_decode($request-&gt;getResponseBody());<br>$acccess_token = $response-&gt;access_token;<br><br># mixi日記APIを使った日記の新規投稿<br><br>// APIエンドポイント<br>$host = MIXI_API_ENDPOINT . "/diary/articles/@me/@self";<br>// 送信データ<br>$title = "Mixi Graph API（Diary API）による投稿";<br>$body = "本文です。";<br>$data = array(<br>'title' =&gt; $title,<br>'body' =&gt; $body,<br>'privacy' =&gt; array(<br>'visibility' =&gt; "friends", // 友人まで公開<br>'show_users' =&gt; "0", // ナニコレ？<br>),<br>);<br>// PEAR::HTTP_Requestによるmixi日記の投稿処理<br>$request = new HTTP_Request($host);<br>$request-&gt;setMethod(HTTP_REQUEST_METHOD_POST);<br>//$request-&gt;addHeader('Content-Type', 'multipart/form-data'); // 必要無いらしい<br>$request-&gt;addFile("photo1", "photo1.jpg", "image/jpeg");<br>$request-&gt;addFile("photo2", "photo2.jpg", "image/jpeg");<br>$request-&gt;addFile("photo3", "photo3.jpg", "image/jpeg");<br>$request-&gt;addHeader('Authorization', 'OAuth '.$acccess_token );<br>$request-&gt;addPostData("request", json_encode($data));<br>if (PEAR::isError($request-&gt;sendRequest())) {<br>die('request failed');<br>}<br>// レスポンスをJSONデコードし、記事IDを取得できていれば投稿は成功<br>$response = json_decode($request-&gt;getResponseBody());<br>$diary_id = $response-&gt;id;<br>echo $diary_id;<br><br><br>以上、結構シンプル。<br><br>PEAR::HTTP_Request は Deprecated なので HTTP_Request2 を使う必要があるのだけどまあテストだしいいか。<br><br><a href="http://hinamizawa.com/archives/543" target="_blank">Diary APIを使った日記の投稿（画像も）【WordPressからMixiへの記事投稿】【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11506426771.html</link>
<pubDate>Sun, 07 Apr 2013 01:02:47 +0900</pubDate>
</item>
<item>
<title>Mixi Graph APIを利用してみる【WordPressからMixiへの記事投稿】</title>
<description>
<![CDATA[ まず、mixiのデベロッパーセンターでユーザー登録およびアプリの登録を行なって、OAuth認証に必要なConsumer KeyとConsumer Secretを取得した。<br><br>mixiのOAuth認証は、Facebookのとは違ってアクセストークンの有効期間が短いので、リフレッシュトークンを使ってアクセストークンを毎回再取得する必要があるようだ。<br><br>参考：<a href="http://t2aki.doncha.net/?id=1339828183">次はmixiのgraph APIから</a><br><br>簡単にまとめると、<br><br>１．最初にユーザー認証を行なって日記の参照と書込を行う事を許可し、認証コードを取得する<br><br>２．コードを使ってエンドポイントにトークン取得のリクエストを行う<br><br>３．アクセストークンと一緒にリフレッシュトークンが返ってくるので、次回のアクセストークン取得にはこちらのリフレッシュトークンを使う（アクセストークンの有効期限が非常に短いため）<br><br>４．リフレッシュトークンの有効期間が終わっていたらリフレッシュトークンを２の方法で再取得する<br><br>公式のサンプルでは認証コードを手動で取得するようになっている。<br><br><a href="http://developer.mixi.co.jp/connect/mixi_graph_api/mixi_io_spec_top/examples/">サンプルコード集（mixi Developer Center）</a><br><br>そのせいか、最初この認証コードをリフレッシュトークンだと何故か勘違いしてしまい、毎回ユーザー認証が必要になるのはなんでだろうと思っていたんだけど、改めてmixiデベロッパーセンターの説明を読むと、ちゃんとgrant_typeをrefresh_tokenと指定してエンドポイントにリクエストせよと書いてある。先ほどのブログを読んで初めてこちらのほうが重要だという事を理解した。<br><br><a href="http://developer.mixi.co.jp/connect/mixi_graph_api/api_auth/">認証認可手順（新方式）（mixi Developer Center）</a><br><br>とりあえずリフレッシュトークンを取得して保存しておくことで、これを使って認証無しですぐにアクセストークンを再取得できるようになった。あとは日記APIを使って日記を書き込めば終了。<br><br><a title="Diary API" href="http://developer.mixi.co.jp/connect/mixi_graph_api/mixi_io_spec_top/diary-api/">Diary API（mixi Developer Center）</a><br><br>OAuth認証とAPIを使った更新は謎めいたAtom APIからの書き込みよりシンプルで分かりやすい。たぶんAmebaもじきにAtom APIを廃止してOAuth認証に切り替えるんじゃないだろうか。<br><br><a href="http://hinamizawa.com/archives/534" target="_blank">Mixi Graph APIを利用してみる【WordPressからMixiへの記事投稿】【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11505856693.html</link>
<pubDate>Sat, 06 Apr 2013 09:36:05 +0900</pubDate>
</item>
<item>
<title>【WordPressからMixiへの記事投稿】</title>
<description>
<![CDATA[ Mixiの記事投稿用エンドポイントにアクセスできなくなったのは、URL変更ではなくAtom APIの機能廃止だった模様。<br><br><a href="http://developer.mixi.co.jp/news/news_connect/011606.html">【続報】mixi Connect WSSE認証の廃止日の変更について</a><br><br>替りにOAuth2.0とmixi Graph APIを使ってくれとある。より汎用的な方法に機能を統廃合したのはいいとして、どうしようかな。<br><br><a href="http://hinamizawa.com/archives/507" target="_blank">【WordPressからMixiへの記事投稿】【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11496414226.html</link>
<pubDate>Sat, 23 Mar 2013 15:54:13 +0900</pubDate>
</item>
<item>
<title>使用可能なHTML要素の制限【WordPressからアメブロへの連携】</title>
<description>
<![CDATA[ a要素やimg要素は使えるけどiframe要素やobject要素を使うと、AtomAPIに送信しても403 Forbiddenが返ってくるだけ。リジェクトされてしまい登録はできない。<br><br>なのでYoutube動画の貼り付けはアメブロのエディタからしか（現時点では）できないようだ。<br><br><a href="http://hinamizawa.com/archives/388" target="_blank">使用可能なHTML要素の制限【WordPressからアメブロへの連携】【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11494104445.html</link>
<pubDate>Wed, 20 Mar 2013 02:59:16 +0900</pubDate>
</item>
<item>
<title>Open Graph ProとFacebook公式プラグインの連携</title>
<description>
<![CDATA[ WordPressからFacebookへの連携をまだ模索中。とりあえず暫定的にWordPressの2つのFacebook用プラグインであるOpen Graph ProとFacebookを使う方法でしばらく行こうと思う。<br><br>Facebookページに関して。Facebook公式プラグインではFacebookページヘの投稿は自動的にリンクのシェアになるので問題はない。<br><br>Facebookタイムラインに関して。Facebook公式プラグインではアクティビティとしてタイムラインにWordPressブログの新規投稿のリンクが載る。ただ、Facebookページとは違ってリンクのシェアが行われないままになっているので、フォロワーには何も通知が行かない。なのでWordPressでの投稿が終わった後、Facebookにログインして記事リンクをシェアする必要がある。<br><br>FacebookプラグインのOpen Graphメタデータ埋め込みより、Open Graph Proでの埋め込みのほうがFacebook側での可読性が良いように思えるので、この2つをしばらく同時に使ってみることにする。<br><br><a href="http://hinamizawa.com/archives/332" target="_blank">Open Graph ProとFacebook公式プラグインの連携【そのひぐらし】</a>
]]>
</description>
<link>https://ameblo.jp/ametocoro/entry-11475744800.html</link>
<pubDate>Fri, 22 Feb 2013 01:10:16 +0900</pubDate>
</item>
</channel>
</rss>
