0
Thumbsup

いい質問だ

0

Thumbsdown

うーん

facebook sdkについて(sdk 4.1.0)

Curry
Curry 10

投稿日:2015-07-21 16:42:50

お世話になります。

4.1.0.GAに変更したのですが、
facebook sdkを利用しようとすると、

{
[ERROR] error = Retry;
[ERROR] path = "/me";
[ERROR] success = 0;
[ERROR] }

015-07-21 16:28:21.705 FBSDKLog: Error for request to endpoint '/me': An open FBSession must be specified for calls to this endpoint.

となりエラーとなります。

fb=require('facebook')

fbLogin = (data)->
    fb.requestWithGraphPath '/me', {}, 'GET', (e)->

fb.addEventListener 'login', (e)->
    if e.success
        fbLogin()

if fb.loggedIn
 fbLogin()
else
 fb.authorize()

上記のような処理ですが、
fb.loggedInがtrueの時に発生します。
fb.authorize()の時は正常に処理されます。
(アプリを一度削除して再インストールすると
facebookアプリを呼び出して処理が進みました。)

もともと3.5.1.GAでは問題なかったです。
また、4.1.0.GAを使用する際には
tiapp.xmlを公式ドキュメントにしたがって変更はしています。

以上、よろしくお願いします。



回答

yagi_
yagi_
2540
Tcad_icon Tcmd_icon Tce_icon

Thumbsup

いい回答

0

Thumbsdown

うーん

同じような問題が報告されています。
https://jira.appcelerator.org/browse/TIMOB-19046

ただ、モジュールのREADMEをみるとパーミッションのリクエストを投げてそのセッション内で処理するように書いてあります。requestNewReadPermissionsと一緒に実行したらどうなりますか?

https://github.com/appcelerator-modules/ti.facebook

var fb = require('facebook');
fb.requestNewReadPermissions(['read_stream','user_hometown', etc...], function(e){
    if(e.success){
        fb.requestWithGraphPath(...);
    } else if (e.cancelled){
        ....
    } else {
        Ti.API.debug('Failed authorization due to: ' + e.error);
    }
});

Curry
Curry
10

Thumbsup

いい回答

0

Thumbsdown

うーん

回答ありがとうございます。

fbLogin = (data)->
    fb.requestNewReadPermissions [
        'email'
        'user_birthday'
        'user_friends'
    ], (e)->
        if e.success
            fb.requestWithGraphPath '/me', {}, 'GET', (e)->

と記述して実行しましたが、
fb.requestNewReadPermissionsが動かないのか、
eが拾えないです。エラーが出ないです。
fb.authorizeは良くて、
if fb.loggedIn
 fbLogin()
で駄目なようです。

ちなみにiosです。


Curry
Curry
10

Thumbsup

いい回答

0

Thumbsdown

うーん

よくわかりませんが、
loggedInを使うとダメそうなので
常にauthorizeを使うようにしてみます。


ログインすると回答することができます。