Amazon

2012年9月30日日曜日

Facebook Graph APIで写真が属しているアルバムIDを取得する

FacebookのiPhoneアプリのように、画像を表示して画面をスイープしたら次の画像を取得する方法を探している。


アルバムのIDリストを取得するには以下の通り
https://graph.facebook.com/*my_id*/albums?access_token=*access_token*
さらにアルバムのIDが決まればそこに含まれる写真のIDリストは以下で取れるようです。
https://graph.facebook.com/*album_id*/photos?access_token=*access_token*
が、ある写真がどのアルバムに属するかはわからないので、それを調べたい。


そこで考えた方法は
表示した画像のIDを取得して、その画像が属するAlbum IDを取得。
ただ、Graph APIでは取れなさそうで、FQLを使う様子




ドキュメントはこちら
http://developers.facebook.com/docs/reference/fql/photo/

参考FQLはこちら
select aid, album_object_id from photo where object_id = ${GRAPH_PHOTO_ID}

うーん、めんどくさい。。。

2012年9月17日月曜日

facebookErrDomain error 10000.

Titaniumを使ってFacebookのpostアプリを作る時にハマった事。

以下のようなメソッドとパラメーターを入れてPostするが、

Ti.Facebook.requestWithGraphPath(url, parameters, "POST", function(e) {...}


The operation couldn't be completed. (facebookErrDomain error 10000.)

という結果が返って来た。

urlをよく確認すると'me/home'になっていた。'me/home'はフィードを読み込むためのものであり、GETするもの。
'me/feed'は自分が投稿したものを得るのであり、POSTするもの。

この小さな違いに少しハマりました。

各Webサービスの認証のTitanium Code

Titaniumで開発する際、様々なサービスと連携する事になると思いますが、
その際、各サービスとの認証を毎回実装しているとめんどくさいので、
まとめられてるAPIはないものかと探していたら、ありました。
https://github.com/k0sukey/TiPlatformConnect

参照元
http://www.moongift.jp/2012/04/20120413-2/

2012年9月2日日曜日

TitaniumでTitleControlに枠なしのボタンを複数付ける方法

Titaniumを使って、Facebookアプリ風にTitleControlに複数のボタンを枠なしで表示したい。

枠ありでよければ、TabbedBarにbuttonの配列を作って、setTitleControlする方法がTitanium Mobileのマニュアルに方法が書いてあるが、枠なしにする方法が見当たらない。

どなたか方法知りませんか?



2012年7月29日日曜日

Facebook Graph APIでaccess_tokenを延期する方法

通常のFacebookの認証だと1,2時間で認証が切れてしまうので、それを延ばすための方法。

こちらより自分のapp_id, app_secretを取得
https://developers.facebook.com/apps

さらにアプリのSetting -> AdvancedでRemove offline_access permissionをenableにする必要がある

access_tokenを更新するためのリクエスト方法は以下。公式ドキュメントはこちら

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

TitaniumでEXISTING_ACCESS_TOKENは
http://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.Facebook

Ti.Facebook.accessTokenでアクセスできるみたい。
authorize()後にアクセスすると取得可能になるみたい。
ちなみにTi.Facebook.appidもいける。

もしくはgetAccessToken()かgetAppid()でも良い。
あとは()でリクエストすることになるのかな。

2012年7月7日土曜日

Titaniumであらかじめ用意されているiPhoneアプリのボタン一覧Titanium.UI.iPhone.SystemButton

2012年6月16日土曜日

Titaniumのバージョンを上げたらエラー

TitaniumのSDKのバージョンを1.8.2に上げたところ
これまで動いていたKitchen Sinkを動かそうとしたところ以下のエラーがでてしまった。


[ERROR] xcodebuild: error: The project 'Kitchen Sink.xcodeproj' does not contain a target named 'KitchenSink-universal'.
[ERROR] 
[ERROR] Error: Traceback (most recent call last):
  File "/Users/shingo/Library/Application Support/Titanium/mobilesdk/osx/1.8.0.1/iphone/builder.py", line 1274, in main
    execute_xcode("iphonesimulator%s" % link_version,["GCC_PREPROCESSOR_DEFINITIONS=__LOG__ID__=%s DEPLOYTYPE=development TI_DEVELOPMENT=1 DEBUG=1 TI_VERSION=%s %s %s" % (log_id,sdk_version,debugstr,kroll_coverage)],False)
  File "/Users/shingo/Library/Application Support/Titanium/mobilesdk/osx/1.8.0.1/iphone/builder.py", line 1180, in execute_xcode
    output = run.run(args,False,False,o)
  File "/Users/shingo/Library/Application Support/Titanium/mobilesdk/osx/1.8.0.1/iphone/run.py", line 39, in run
    sys.exit(rc)
SystemExit: 65


そんなわけで、project -> cleanで解決

Amazon3