・getにて取得した日付データのNSDate変換方法
日付データはUTC形式になっているので、NSDateに変換する方法を調べました。
NSDateFormatter* formatter = [NSDateFormatter new];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss'+0000'";
formatter.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
NSDate* date = [formatter dateFromString:[dic objectForKey:@"updated_time"]];
・複数アカウント使用時の認証回避
LiveSDK-for-iOSをそのまま使用すると以下の問題があります。
「アカウントAでログイン後、アカウントBにログインするには
一旦アカウントAでログアウトしなければならない。」
アカウントを切り替えるたびに、いちいち認証していたら手間ですので、
それを回避します。
LiveSDK-for-iOSではOAuth2.0という認証方式が採用されています。
一度認証画面でユーザIDとパスワードを入力して認証されると
その後は認証処理を飛ばすことが可能です。
これはTokenを使用することで可能にしています。
⑴ユーザID、パスワードで認証する
⑵Tokenを受け取る
⑶その後はTokenを使用してAPI(get, downloadなど)を実行する
LiveSDK-for-iOSの場合、Tokenはどこに保存されているかというと
「LiveService_auth.plist」というファイル名で保存されています。
※まだ調査中ですが、暗号化もされずTokenがそのまま保存されているため
セキュリティ的に危ない気がします。keyChain等使用して暗号化保存する方が
いいと思います。
さて複数アカウントの認証回避ですが、Tokenを使い分けることで実現可能です。
LiveSDK-for-iOSをそのまま使用するとTokenが一つしか保存されません。
アカウントAをログアウトせず、アカウントBにログインしようとすると
TokenがアカウントAになっていますので、アカウントAにアクセスしてしまいます。
(ログアウト処理にてTokenが削除されます)
なので、アカウントAで認証した際に、TokenをアカウントAのTokenとして保存しておきます。
(例えばNSDictionaryで分けるとか、Token_A.plistで保存するとか)
アカウント毎に保存したTokenを使用すれば、認証を飛ばすことができるわけです。
ちなみにLiveAuthStorage.mにてTokenのファイル読み込み/書き込み処理がありますので、
そこを修正します。
また、実装内容によってはログイン処理の前にCookieの削除処理が
必要になってくるかもしれません。
ここまで分かるのに、結構時間がかかりました。
OAuth2.0の仕組みとかCookieとかいろいろ調べるはめになりましたが
いい勉強になりました。
何か問題ありましたら、コメントでお願いします。