2012年1月11日水曜日

アプリから管理者名でFacebookページに投稿するための超簡単なaccess token取得方法

アプリからFacebookページに投稿する方法は、個人名での投稿でも管理者名での投稿でも方法は同じですし、調べたらそれなりの適解がいっぱい出ているので省略。

ここで書くのは、FacebookページにそのFacebookページの管理者名で投稿するための準備としての、access tokenを取得する超簡単な方法です。


検索して出てくる多くの記事では、

  • これをするためだけのコードを書く。
  • サーバーにアップする。
  • 動かす。
  • 表示されたページのURLのパラメータにあるaccess_tokenの部分をコピー

ってやるけど、めんどくさくないですかね。


一度、やっとこさ見つけたどこかのページを参考にしてやったものの、久々にその作業が必要になったときにその方法が思い出せず、さらにそのとき参考にしたページが見つからず、長時間ハマりまくったので備忘録として残すことにしました。

以下、その手順です。
(注)先にアプリを作っておいてください。(このやり方も省略)

  1. Facebookの「Graph API Explorer」にアクセスします。
  2. 画面右上のプルダウンから予め作っておいたアプリを選択します。
  3. 2のプルダウンのちょっと下にある「アクセストークンを取得する」ボタンを押します。
  4. ダイアログが開くので、そこの「Extended Permissions」を押して、「manage_pages」と「offline_access」と「publish_stream」のチェックを入れて、「Get Access Token」ボタンを押します。
  5. ダイアログが閉じて別のウインドウが開くので、そこの「許可する」ボタンを押します。 (※1)
  6. ウインドウが閉じたら、元のウインドウに戻って、3のボタンのちょっと下にある「accounts」というリンクを押します。(※2)
  7. 入力欄の下にAPIからの返り値として、自分が管理しているすべてのFacebookページのページ名とかページIDとかがズラズラっと表示されるので、そこの中からアプリを使って管理者名で投稿したいFacebookページを探して、そのaccess_tokenの値をコピーします。

※1 ブラウザの設定で、ポップアップウィンドウを許可してないとダメかも。
※2 「送信」ボタンの左にある入力欄に最初から表示されているURLの末尾に、「/accounts」を追記して「送信」ボタンを押してもOK。

おしまい。

2011年12月18日日曜日

「ねちゃったー」がandronaviに掲載されました。

拙作アプリ「ねちゃったー」がandronaviに掲載されました。
またまた有名サイトへの掲載です。

記事については右のURLからご覧ください。 → http://andronavi.com/2011/12/148289

ツイートの内容は変更できない、と間違ってはいますが、とりあえず掲載されたので嬉しいです。
ありがとうございます。
【追記:2011/12/19】
早速修正をいただきました。

もしお使いいただけるようでしたら、下記QRコードからお願いいたします。(マーケットにリンクします。)


Twitter4j-2.2.xを使ったツイートのコーディング例

以前、こちらのエントリーでTwitter4jの使い方を説明しましたが、2.1系から2.2系で使い方が変わったので、内容を修正しました。

Twitter4j-2.2.xを使ったOAuth認証のコーディング例の続き・・・

■開発環境
・JDK 6

・Android SDK Tools, Revision 13(前のエントリーは6でした。)
・Twitter4j-2.2.4(前のエントリーは2.1.3でした。)


■コーディング例
(移行する場合もあると思うので、2.1系は紫色にして、コメントアウトしています。
初めて実装する場合は、青字と赤字だけでOKです。)

Twitter4j-2.2.xを使ったOAuth認証のコーディング例

【セルフPR】
・KOTOO(http://kotoo.in
という写真のまとめサイトを始めました。見てくれると嬉しいです。

---

以前、こちらのエントリーでTwitter4jの使い方を説明しましたが、2.1系から2.2系で使い方が変わったので、内容を修正しました。

Twitterクライアントを作るに当たって、ラクしてxAuthなんて使わずにちゃんとOAuthを使いましょう、という内容です。

でもいざ探すと、Twitter4jとSignpostの併用なんていう気持ち悪いコーディングや、返ってきたaccess_tokenをユーザーにメモらせたり、JavaScriptで解析したりするコーディング等、もうちょっと工夫しようよ的なサンプルばっかりで使い物にならなかったので、Twitter4jのみを使ってグチャグチャながらも自分で作りました。
(このコードも気持ち悪いんですが。)

■開発環境
・JDK 6
・Android SDK Tools, Revision 13(前のエントリーは6でした。)
・Twitter4j-2.2.4(前のエントリーは2.1.3でした。)

■前提
1.アプリケーション登録が完了している。(※)
※OAuthを使う場合、クライアントアプリであっても、
「ブラウザアプリケーション」として登録する。
2.Twitterに飛ぶためのボタン1つだけのActivity(以下、Activity1)と、
Twitterの認証画面を表示するActivity(以下、Activity2)の構成(※)。
※Activity2用に、WebViewを使ったレイアウトをあらかじめ作成しておく。
このレイアウトに設定したWebViewは、WebView01というIDにしています。

■注意点
1.CALLBACK URLには適当な文字列を設定しておく。
Twitterのアプリ登録で指定したCALLBACK URLとは別にしておいた方が混乱しない。
2.下記コードの中で「oauth_verifier」という文字列が出てくるが、
これはaccess_tokenとaccess_token_secretを付与してもらうためのキー。
3.例外処理は簡略化のために省いています。

■コーディング例
(移行する場合もあると思うので、2.1系は紫色にして、コメントアウトしています。
初めて実装する場合は、青字と赤字だけでOKです。)

「ねちゃったー」があのTarzanに掲載されました。

ちょっと前の話ですが、あの買った時点で満足する雑誌No1のTarzanに、拙作アプリ「ねちゃったー」が掲載されました。

一見「ねちゃったー」はフィットネスとは全然関係ないように思えますが、本当に関係がありません。

たまたま、テーマが睡眠だったために取り上げられました。

掲載までのプロセスがWebで取り上げられるプロセスと違って、オファー→校正→承認、とちゃんと掲載までのフローに参加できて良い経験でした。
掲載誌もいただけました。
ありがとうございました。

これで、テレビ、雑誌、Webと取り上げられたので、残るは新聞ですかね。
新聞社の方、お待ちしてますよw

ちなみに「ねちゃったー」はこちらからダウンロードできます。
(Android版のみです。)

2011年10月3日月曜日

ねちゃったー for PC に関する雑感メモ

ねちゃったー for PC を作ったらどうなるかを考えたときのメモ。

PC付けっぱなしにするわけにもいかないから、鳴らない。
鳴らないということは止めるという動作がない。
止めなければスヌーズがないということで、何度寝なのか分からない。
そもそもツイートする意味あるのかな。
PC版では、使いたければどうぞという機能かな。

PC自体が鳴らないなら、電話番号を登録してもらって、それを鳴らせばいい。
ボタン操作でスヌーズかストップ。

決められた音声を自動再生でもいいし、起こされたい音声ファイルをアップロードしておいてもいい。
twilio使えばできそう。(最初に参考にしたURL:http://neta.ywcafe.net/001114.html

ちなみに、「Talk O'Clock」なんていうサービスもあるけど、自分で選べるとは言え、見ず知らずの人に起こされることの抵抗感は半端ない。

2011年8月23日火曜日

「ねちゃったー」がテレビで紹介されました。

日本テレビのiConっていう深夜番組で、拙作アプリ「ねちゃったー」が紹介されました。
iConのFacebookページからご覧いただけます。
Facebookアカウントをお持ちでない方は・・・ごめんなさい。

約4分半の映像の内、2分40秒から最後まで「ねちゃったー」の話題で占めてます。
超満足。

映像の中で「作った人の動機を知りたい」というコメントもありましたが、
「ソーシャル目覚まし」というコンセプトですので、
動機は誰かに起こして欲しいというだけです。
別に二度寝という恥を晒しすためとかではないです。

ただ、これでダウンロード数増えたわけではなく、何も変化ないです。
Androiderに紹介された時の方は激増しました。
深夜番組で話題も超ニッチだからでしょうけど、そんなコンテンツはテレビ向きじゃない気がしました。
すみません、生意気言いました。

2011年7月31日日曜日

Facebookアプリのアクセス許可ダイアログの表示方法

最初から言い訳しますが、Facebookアプリと言ってますが正しい用語が分からないです。
Facebookページに追加するアプリのことです。
Canvas Pageとも呼ぶんですかね。
親切な人、教えてくださいな。

Facebookアプリを使うときに、そのアプリに対してアクセス許可をしていなければダイアログが出ますが、
1.新しいウインドウが開いて、そこに承認画面が表示されるタイプ
2.ページ内にダイアログのレイヤー(lightbox的なカンジ)が表示されて、そこに承認画面が表示されるタイプ
の2種類あります。

言葉で説明するのは難しいので、実際に見てください。
1は、画面左にあるメニューの「承認方法テスト(別ウインドウに表示版)」から、
2は、「承認方法テスト(ページ内に表示版)」から試してください。
このブログのFacebookページ

1はポップアップブロックに引っ掛かってしまうという大弱点がありますし、
Facebook公式アプリの認証が2なので、できれば2にしたいと思い、
調べたけどなかなか分からないので試行錯誤を重ねまして、その成功したコードを紹介します。
(Javascript SDKを使いました。)

1のコード:
<div id="fb-root"></div>
<script src="http://connect.facebook.net/ja_JP/all.js"></script>
<script type="text/javascript">
  FB.init({
    appId  : 'アプリのApp ID',
    status : true,
    cookie : true,
    xfbml  : true
  });
  FB.getLoginStatus(function(response) {
    if (response.session) {
      // 許可済みの時の挙動
    } else {
      FB.ui({
        method: 'permissions.request', // 
        display: 'popup'
      },
      function (response) {
        if(response.session){
          // 許可されたときの挙動
        }else{
          // 許可されなかったときの挙動
        }
      });
    }
  });
</script>
2のコード:
<div id="fb-root"></div>
<script src="http://connect.facebook.net/ja_JP/all.js"></script>
<script type="text/javascript">
  FB.init({
    appId  : 'アプリのApp ID',
    status : true,
    cookie : true,
    xfbml  : true
  });
  FB.getLoginStatus(function(response) {
    if (response.session) {
      // 許可済みの時の挙動
    } else {
      FB.ui({
        method: 'auth.login',
        display: 'iframe' // pageでもOK。違いはよく分からんw
      },
      function (response) {
        if(response.session){
          // 許可されたときの挙動
        }else{
          // 許可されなかったときの挙動
        }
      });
    }
  });
</script>

違うのは赤字の部分です。
<script></script>の部分は、<head>内に入れてもOKですが、
離れてるのもイヤなんで<body>に置いてます。
</body>の直前に入れるのが描画上良いんでしたっけね。
まあ細かいことは置いておきます。

で、普通考えればdisplayだけ変えればいいような気がしますが、違ったんです。
auth.loginは使われなくなって、permissions.requestを代わりに使えという話もあるんですが、
permissions.requestはバグのせいか何かでdisplayがpopupしか使えないみたいです。
なので、auth.loginを使っています。(いずれpermissons.requestが使えるんでしょうかね。)

リファレンスが公式にも少なくて手探り過ぎて笑えます。
これ、仕事でやってる人は大変そう。

2011年7月4日月曜日

freelancer.comの使い方(発注先決定・支払編)

freelancer.comの使い方の後半です。
前回の「freelancer.comの使い方(発注先選定編)」はこちらから

案件の公開、発注先の選定に比べると用語が独特で分かりにくかったです。

では発注先の決定から支払の手順です。

1.
入札者の精査をして、発注しようという人を見つけたら、
「AWARD PROJECT」ボタン(画像の赤丸部分)を押します。
ちなみに、複数人に発注できるようです。
当然その分費用は掛かりますが。


2.
すると、入札者リストの上部に下の画像のような表示が出てきます。
ここで、まず「Create Milestone」(画像の赤丸①)をクリックします。
すると、その下に画像の赤丸②のような表示が出てきます。
ここに、フリーランサーが指定している「Milestone」の金額(※)を入力して、
その横にある「CREATE MILESTONE」ボタンを押します。
※「Milestone」は入札額の下に表示されています。
 下の画像の場合では「Fully paid」となっていますが、
 これは「Milestone」を支払済であることを示しています。

なお、「Milestone」とは前払金を意味する用語で、
発注者が成果物だけ受け取って逃げる事故と、
フリーランサーがお金だけ受け取って逃げる事故を避ける仕組みです。
一旦、「Milestone」を発注者からfreelancer.comが預かり、
案件終了後に発注者からの指示でフリーランサーに渡される、という流れです。
「Milestone」の金額は人によってまちまちで、
フリーランサーごとに入札額の下(画像の赤丸③)に表示されています。
表示されていない場合は「Milestone」は不要、という意味です。
一般的なmilestoneとは意味が違うのでご注意を。

「Milestone」の支払がないと案件に着手してくれないので、
発注したら早々に支払ったほうが良いと思います。


3.
案件がスタートしたら、後は直接案件の進捗や成果物についてやり取りをします。
今回はロゴの作成を依頼したのですが、
コンセプトの伝達から微修正含めて10往復くらいやり取りしました。

で、成果物に納得ができれば費用の支払をします。
「Transfer Funds」(画像の赤丸①)をクリックします。
すると、その下に画像の赤丸②のような表示が出てきます。
ここに入札金額と同じ金額を入力して、その横にある「TRANSFER FUNDS」ボタンを押します。

「Milestone」で全部充当できればそのまま支払は完了します。
足りない場合は別途Paypal等で入金した上で支払います。


4.
支払が完了すると案件終了となり、案件公開時に支払った5ドルが返金されます。

これがfreelancer.comのおおまかな使い方です。
もし使うことがあれば、その時は参考にしてもらえれば幸いです。

2011年7月3日日曜日

google+を使い始めると良いこと(その1)

Picasaの制限容量は1GBですが、google+を使い始めると長辺が2048ピクセルの写真と15分以内の動画が、
その制限から除外されるみたい。

確かにgoogle外に逃がすわけないし、Streamに画像やら動画流しているうちにPicasaの制限にすぐひっかかるわな。

というわけで、Picasaの空き容量が格段に増えましたとさ。