トップ  > メモ一覧  > カテゴリ「OpenSocial関連」の絞り込み結果 : 6件

6件中 1 〜 6 表示  1 

No.3653 OpenSocial関連設定

OpenSocial関連設定

OpenPNE初期設置時の設定

公開鍵の設定

  • アプリを設置するOpenPNEで実行する
$ php symfony opOpenSocial:generate-key

  • Web上で公開鍵を確認する

http://SNS_URL/opensocial/certificates

管理画面からのアプリ設定手順

「Consumer key」と「Consumer secret」の発行

①管理画面にログイン
②プラグイン設定>「opOpenSocialPlugin」の「設定」リンクを押す
③「アプリ追加」リンクを押す
④「Gadget XML URL」を入力し、「追加」ボタンを押す
⑤「アプリ詳細」画面を表示
⑥「モバイルアプリを有効にする」にチェックし、「確定」ボタンを押す
⑦「Consumer key」と「Consumer secret」(「表示」ボタンを押す)をひかえる
⑧手順⑦で控えた「Consumer key」と「Consumer secret」をアプリ提供者へ伝える

SNS側からのリクエストを検証するための公開鍵(本番環境用)の場所

(OpenPNEのトップ)/plugins/opOpenSocialPlugin/certs/public.crt

引用元

更新:2011/05/14 23:33 カテゴリ: OpenPNE3  > OpenSocial関連 ▲トップ

No.3579【引用】鍵の期限を確認

OpenSocialの署名検証などに使わえるX.509証明書の詳細を表示する方法
提供: rysk92wiki
移動: ナビゲーション , 検索
openssl x509 -in hoge.crt -text

引用元

更新:2011/04/19 15:49 カテゴリ: OpenPNE3  > OpenSocial関連 ▲トップ

No.3414 applicationテーブルにmember_idカラムがある理由

applicationテーブルにmember_idカラムがある理由

applicationテーブルにmember_idカラムがあるのですが、どういう場合にデータが入るかを
もし知っていたら教えていただきたいです。


ユーザがgadget.xmlを登録して勝手にアプリ追加できるモードで、
その追加したユーザのmember_idが入ると聞いております。
(実際の動作確かめてません!)

なるほど・・・
そんなことが可能なんですね
更新:2011/02/07 18:59 カテゴリ: OpenPNE3  > OpenSocial関連 ▲トップ

No.3409 RESTfulAPI仕様

RESTful API仕様

PC版のみ対応mixiアプリでは、ユーザのプロフィール情報やマイミクに関する情報をRESTful APIにより取得して利用することができます。各APIは、OpenSocial RESTful API に準拠しています。

PC向けmixiアプリについて、JavaScript APIから取得した情報は、Webブラウザ上で悪意を持ったユーザに改ざんされてしまう可能性があります。つまり、JavaScript APIにて取得した情報を、gadgets.io.makeRequest()関数などにより外部サーバに送信することを考えた場合に、その内容はユーザ によって不正に変更されているかもしれない、ということになります。外部サーバからRESTful APIを利用してJavaScript APIの代わりに情報を取得することによって、悪意を持ったユーザによる改ざんの余地を最小限に留めることが可能となります。

各APIへアクセスするためには、Consumer KeyとSecretを用いた署名(OAuth Signature)をつける必要があります。OAuth Signature の生成方法については 2-legged OAuthによるAPIアクセス を参照ください。

mixi OpenSocial RESTful APIのエンドポイントは、下記になります。

http://api.mixi-platform.com/os/0.8

利用準備

PCのみ対応のmixiアプリにおいてRESTful APIを利用するためには、Consumer keyおよびsecretを発行、入手する必要があります。

mixiアプリの設定画面(edit_appli.pl)において、もしConsumer keyおよびConsumer secretが表示されていなかった場合は、一度その画面で設定内容を保存します。その際に、設定内容を変更する必要はありません。この時点で、対象の mixiアプリで利用可能なConsumer keyおよびsecretが発行され、同一ページ内にそれらが表示されます。

制限事項

PCのみ対応のmixiアプリにおいてRESTful APIを利用する際には、アクセスに関して制限があります。

RESTful APIにアクセスする際に、xoauth_requestor_idパラメータによって、誰の権限でアクセスを行うかを指定することが必要になります。パ ラメータ値は、対象ユーザのIDとなります。このユーザIDについて、「一定時間内にWebブラウザで対象のmixiアプリを起動したユーザ」のIDのみ 指定することが可能です。

対象ユーザが対象のmixiアプリを起動していない、もしくは起動から一定時間が経過した後にRESTful APIにアクセスを行った際には、HTTPレスポンスコードとして「401 Unauthorized」が返却されます。

提供されるAPI

PC向けのみ対応のmixiアプリでは、以下のAPIが利用可能です。なお、取得可能なフィールドおよびアクセスコントロールについてはPC用のJavaScript APIと同一です。

Person & Friends API

ユーザのプロフィールやマイミクに関する情報の取得を取得することができます。

/people/{guid}/@all
/people/{guid}/@friends
/people/{guid}/@self
/people/@me/@self

application/json 形式:

{
  "entry" : {
    "thumbnailUrl":"http://img.mixi.jp/img/basic/common/noimage_member76.gif",
    "nickname":"ミクシィ開発部",
    "lastLogin":"2009-06-01T12:10:05Z",
    "isViewer":"true",
    "hasApp":"true",
    "isOwner":"true",
    "id":"xxxxxxx",
    "updated":"2009-06-01T12:11:31Z",
    "userHash":"xxxxxxxxxx",
    "displayName":"ミクシィ開発部"},
  "startIndex":0,
  "totalResults":1
}

application/atom+xml 形式:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:osearch="http://a9.com/-/spec/opensearch/1.1">
  <entry>
    <content type="application/xml">
      <person xmlns="http://ns.opensocial.org/2008/opensocial">
        <id>urn:guid:mixi.jp:xxxxxxx</id>
        <displayName>ミクシィ開発部</displayName>
        <nickname>ミクシィ開発部</nickname>
        <thumbnailUrl>http://img.mixi.jp/img/basic/common/noimage_member76.gif</thumbnailUrl>
        <lastLogin>2009-06-01T12:10:05Z</lastLogin>
        <userHash>xxxxxxxxxx</userHash>
      </person>
    </content>
    <title/>
    <updated>2009-06-01T12:11:31Z</updated>
    <author/>
    <id>urn:guid:mixi.jp:xxxxxxx</id>
    <link href="http://img.mixi.jp/img/basic/common/noimage_member76.gif" rel="alternate" type="image/jpeg"/>
  </entry>
  <osearch:startIndex>0</osearch:startIndex>
  <osearch:totalResults>1</osearch:totalResults>
</feed>
取得可能なフィールド一覧

基本情報

フィールド名 内容 フォーマット
nickname ニックネーム xs:string
profileUrl プロフィールURL xs:string
thumbnailUrl プロフィール画像URL xs:string
hasApp アプリ利用状態 xs:boolean
bloodType 血液型
※A, AB, B, Oのいずれか
xs:string

プロフィール情報

フィールド名 内容 フォーマット
addresses 現住所 address Element
birthday 生年月日 xs:date
gender 性別 xs:string

その他

フィールド名 内容 フォーマット
userHash ユーザハッシュ xs:string

基本情報以外の項目を取得する場合は、以下のように fields パラメータに項目名をカンマ区切りで指定します。

/people/@me/@self?format=json&fields=birthday,gender
アプリをインストールしているマイミク一覧の取得

Friends APIにて、現在のmixiアプリをインストールしているユーザのみの一覧を取得する場合は、以下のように filterBy パラメータに hasApp を指定します。

/people/@me/@friends?format=json&filterBy=hasApp

最初から必要なデータのみを取得することで、mixiアプリのレスポンス向上を図ることが可能になり、開発者およびユーザの双方にメリットがあります。Friends APIアクセス時は、基本的にこのフィルタを設定するようにしてください。

マイミク一覧から特定ユーザの取得

あるユーザがマイミクシィかどうかを確認したい場面がしばしば登場します。これを行うために、@friends/{pid}という指定を利用することができます。

/people/@me/@friends/{pid}

pidには、取得したいユーザのmember_idを指定します。上記の例では、xoauth_requestor_id値により指定されたユーザ のマイミクシィ一覧にpidで指定したユーザが含まれている場合は、そのユーザのプロフィール情報が結果として得られます。それに対して、もしマイミク シィ一覧に含まれていない場合は、エラーコードとして404が返却されます。

つまり、プロフィール情報が取得できたかどうかで、マイミクシィかどうかを判断することが可能となります。

エラーコード

Person & Friends APIの呼び出し時に、いくつか結果として得られる可能性があるエラーコードがあります。これらのエラーコードは、HTTPレスポンスのHTTPステータ スコードとして返却されます。エラーコードの種別によって、適切な処理を行ってください。

エラーコード 発生する状況
400 (BAD_REQUEST) ページング指定値が不正、認証情報が不正、取得対象IDが未指定
403 (FORBIDDEN) 取得権限がない、セレクタ(@self, @sfriendsなど)が未指定
404 (NOT_FOUND) 指定ユーザが見つからない、取得対象ユーザIDが不正
500 (INTERNAL_SERVER_ERROR) mixi側の内部エラー

利用可能なクエリーパラメータ

これらのクエリーパラメータは上記で紹介したAPIにて利用することができる追加のqueryパラメータです。startIndexとcountパラメータはOpenSearch仕様に基づいて解釈されます。

format={format}		-- 出力フォーマット(atomまたはjson)、デフォルトはjson
count={count}		-- ページコレクションのページサイズ
fields={field}		-- 結果に含めたいフィールドのリスト
startIndex={startIndex}	-- ページコレクションのインデックス
filterBy={fieldname}	-- 指定されたフィールドでフィルタされます(hasAppのみ対応)

guidについて

各APIの{guid}には、mixiのユーザIDを指定します。
mixi.jp:1234 または 1234 のような書式を利用してください。

取得できる情報について

個人情報や他のユーザーの情報を扱うAPIについて、mixi Platformでは取得や更新に関して一定のルールを定め、情報へのアクセスに関する制限を行っています。このルールのことを「パーミッションモデル」呼びます。

PC版のみ対応mixiアプリからのRESTful APIについてのパーミッションモデルは、取得できる情報についてにて説明された内容が適用されます。

ユーザハッシュについて

プロフィール情報を取得する際に、fieldsパラメータに”userHash”を指定することで、ユーザハッシュという識別子を得ることができま す。ユーザハッシュとは、「”mixiにユーザ登録した際に使用した携帯電話端末の情報”と”mixiアプリID”を元に生成した文字列」です。つまり、 あるユーザがmixiに入退会を繰り返したとしても、同じ携帯端末を使って入退会した場合には、ユーザIDが変わったとしても、ユーザハッシュは同じ文字 列となります。

ユーザハッシュを使うことで、入退会を繰り返すことで異なるユーザIDを取得しながらmixiアプリを利用しているユーザを検出することが可能となります。具体的には、以下の手順で検出を行うことができます。

  1. People APIにて、ユーザIDとユーザハッシュを取得し、それらを組み合わせて記録しておく。
  2. そのユーザが入退会を行うことで別のユーザIDを取得し、同じmixiアプリが利用される。
  3. People APIにて、そのユーザIDのユーザハッシュを取得しする。
  4. 記録していたユーザハッシュを検索し、既に同じユーザハッシュが存在した場合は、記録していたユーザIDと新しいユーザIDは、同一のユーザと見なすことができる。

これによって、例えば入退会を繰り返すことで、mixiアプリの招待機能を繰り返し利用することで不正にインセンティブを得る、といった行為をある程度抑止することができるようになります。

参考文献:

OpenSocial Restful Protocol v0.8.1
http://www.opensocial.org/Technical-Resources/opensocial-spec-v081/restful-protocol

引用元

更新:2011/02/04 15:48 カテゴリ: OpenPNE3  > OpenSocial関連 ▲トップ

No.3175 OpenSocial開発環境をそろえるその1~Shindig導入~

OpenSocial開発環境をそろえる その1 ~Shindig導入~

10 / 20 月曜日 2008

開発チームの川原です

今回は、OpenPNE3対応する予定のOpenSocialアプリの開発について紹介したいと思います。

「そもそもOpenSocialって何だ?」
と思う人は手嶋さんの@ITの記事が分かりやすいです。
[@IT]Google OpenSocialによって SNSで何ができるのか?

SNS で利用するときのイメージは以下のような感じになります。
コンテナ(アプリケーションが動く場所)では、SNS上のデータ(プロフィールなど)を利用したアプリケーションを動かすことができます。
opensocial-1.gif

現在、OpenSocialを実装しているSNSは、Hi5Ningなどを挙げることができますが、
どちらも Apache Shindig というコンテナを採用しているようです。

OpenPNE3でも、この Apache Shindig を利用してOpenSocialを実装しようと考えています。

今回は、この Apache Shindig を導入してアプリを実際に動かしてみましょう。

Windows上で動作させる方法について説明します。

Shindigに必要な環境

Shindigの動作には以下の環境が必要になります

Apache

mod_rewriteモジュールが有効になっている必要があります

(設定例)
Apacheの設定ファイル「httpd.conf」で

LoadModule rewrite_module modules/mod_rewrite.so

の行をコメントアウトしてください。

PHP

必要なバージョンは5.2.x
json, simplexml, mcrypt, curl拡張が有効になっている必要があります

(設定例)
「php.ini」の設定で

extension=php_curl.dll
extension=mcrypt.dll

の行をコメントアウトして
phpinfo()関数の結果で上記の4つの拡張が有効になっているかを確認してください

Shindigのチェックアウト

ShindigはSubversionを利用することにより入手できます。

リポジトリURL: http://svn.apache.org/repos/asf/incubator/shindig/trunk/

下の例ではTortoise SVNを利用してチェックアウトしています。
opensocial-2.gif

チェックアウト完了後、Shindigをローカルで動かせるように設定します。

バーチャルホストの設定

http://shindig/

でコンテナにアクセスできるようにするために、バーチャルホストの設定を行います。
(次回、説明するものを正常に動作させるためには
http://shindig/ でアクセスできるようにする必要があります。)
「httpd.conf」に以下の設定を追加してください。

<VirtualHost *:80>
  ServerName shindig
  DocumentRoot "shindigチェックアウト先/php"
  <Directory />
    AllowOverride All
    Allow from All
    Order allow,deny
  </Directory>
</VirtualHost>

(チェックアウト先は適宜変更)

ここまでの設定を行ったらApacheの再起動を忘れずに行ってください。

http://shindig/ でアクセスできるようにするための hosts ファイルを編集しましょう。

Windows XP環境であれば、
「C:\WINDOWS\system32\drivers\etc」下にある hosts ファイルに以下の行を追加してください

127.0.0.1 shindig

アプリを動かす

今回は、http://www.labpixies.com/ にある todoアプリを動かしてみます。
OpenSocialでは

http://www.labpixies.com/campaigns/todo/todo.xml

のような、XMLファイルに動作するための宣言やJavaScriptのコードを含ませるような仕組みになっています。

これをShindigで動かすときは

http://shindig/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml

にブラウザでアクセスしてください。

opensocial-3.gif
こんな画面になれば大成功です。
これがコンテナで動いているアプリケーションになります。

しかしながら、この状態では外側のSNSがない上に、
いくらカッコイイことをTODO Listに書き込んだとしても、
データを保持する先がないため、リロードしてしまえば、いなくなってしまいます。

データを保持する先とはどこかというと、
実はコンテナを実装する側で管理するようになっています。

よって、ちゃんと動かすためには
Shindigを実装しているSNSが必要になるのです。

OpenPNE3はまだ、OpenSocialを実装していませんが、
Googleが用意したサンプルSNSが存在します。
それが、以前ブログで紹介したPartuza!というSNSです。

次回は、Partuza!のインストールについて紹介したいと思います。

*このインストール方法は掲載時のものです。

引用元

更新:2010/11/09 00:53 カテゴリ: OpenPNE3  > OpenSocial関連 ▲トップ
6件中 1 〜 6 表示  1 

FuelPHP

Mac

フロントエンド開発

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0