0

を返しません。私はそれをAndroid上で動作させましたが、iOSでは電子メールなしで私にuserdataを返します。AppceleratorのチタンFacebookの要求は、私はFacebook経由でログインしたユーザーの電子メールを受信するためにしようとしていたメール

私のコードは次のとおりです。

var viewClick = function() { 
    fb.logout(); 
    fb.initialize(); 
    fb.authorize(); 
}; 

var facebookLogged = function(e) { 
    Ti.API.info('results From Event: ' + JSON.stringify(e)) 
    fb.requestWithGraphPath("me?fields=name,email,first_name,last_name", {}, 'GET', function(result) { 
    // fb.requestWithGraphPath("me", { fields: "name,email,first_name,last_name"}, 'GET', function(result) { 
     Ti.API.info('results From Graph API: ' + JSON.stringify(result)) 
     var data = JSON.parse(result.result); 
     Ti.API.info("-- email: " + data.email); 
    }); 
}; 


var window = Ti.UI.createWindow({exitOnClose: true, navBarHidden: true, fullscreen: true, orientationModes: [ 
     Ti.UI.PORTRAIT, 
     Ti.UI.UPSIDE_PORTRAIT,  
    ], 
    backgroundColor: '#f0f2f2' 
}); 

var fb = require('facebook'); 

if(Ti.Platform.osname === 'android') { 

    window.fbProxy = fb.createActivityWorker({lifecycleContainer: window}); 
} 

    //fb.setLoginBehavior(fb.LOGIN_BEHAVIOR_NATIVE); 
fb.permissions = ['email']; 

window.open(); 


var view = Ti.UI.createView({ 
    height: 200, 
    width: 200, 
    backgroundColor: 'red' 
}); 

view.addEventListener('click', viewClick); 

window.add(view); 
fb.addEventListener('login', facebookLogged); 

結果は以下のとおりです。私は(それが返すアンドロイドに取り組んでそれを作った

  1. results From Event: {"success":true,"code":0,"data":"{\"firstName\":\"Eren\",\"lastName\":\"Kars\",\"userID\":\"1498651573764560\",\"middleName\":\"\",\"name\":\"Eren Kars\",\"linkURL\":\"https:\\/\\/www.facebook.com\\/app_scoped_user_id\\/1498651573764560\\/\"}","uid":"1498651573764560","cancelled":false,"bubbles":true,"type":"login","source":{"id":"facebook"},"cancelBubble":false} 
    
    results From Graph API: {"result":"{\"id\":\"1498651573764560\",\"last_name\":\"Kars\",\"name\":\"Eren Kars\",\"first_name\":\"Eren\"}","success":true,"path":"me?fields=name,email,first_name,last_name"} 
    
    -- email: undefined 
    

    ための構成/モジュールには問題はありません電子メール)、

  2. それは)のAndroid/iOSの両方(のログインで正常に動作し、
  3. それは、電子メール以外のすべてのフィールドを返し、グラフAPIでエラーを与えません。任意の助けを事前に

感謝。

+0

私は「電子メール」の許可も使用していますが、ユーザーはFacebookやアプリに自分のメールアドレスを表示させる必要があると思います。時にはうまくいくこともあります。私はFacebookのアカウントでそれを試しても動作しますが、この情報がないユーザーもいます。 –

+0

@CarlosHenriqueLustosa:Androidで同じアカウントからメールが返されるため、問題ではないと思います。 – kreatywny

+0

のfacebook v 2.0 apiの後にメールIDがオプションになった場合、ユーザーが非公開にすると電子メールはAPIで取得されないはずですが、fb idを取得します。 – Jain

答えて

0

理由は、私はいくつかのLSApplicationQueriesSchemes文字列を入れていますが、私は必要なすべてのものを追加していないようだということでした。私はそれらのすべてを追加しました(Appceleratorのドキュメンテーション以上が必要です)、今は正常に動作します。

<key>LSApplicationQueriesSchemes</key> 
      <array> 
       <string>fbapi</string> 
       <string>fbapi20130214</string> 
       <string>fbapi20130410</string> 
       <string>fbapi20130702</string> 
       <string>fbapi20131010</string> 
       <string>fbapi20131219</string> 
       <string>fbapi20140410</string> 
       <string>fbapi20140116</string> 
       <string>fbapi20150313</string> 
       <string>fbapi20150629</string> 
       <string>fbapi20160328</string> 
       <string>fbauth</string> 
       <string>fbauth2</string> 
       <string>fb-messenger-api20140430</string> 
      </array> 
+0

今日の日付のように動作しません。電子メールは、もはや受信されなくなったように見えます。 –

関連する問題