菜鸟教程小白 发表于 2022-12-12 13:23:48

android - 无法使用附加模块登录 Facebook


                                            <p><p>我使用的是 Titanium SDK 3.1.0,我无法在 iOS 和 Android 中登录 Facebook。我在两者中都收到不同的错误消息。
在 Android 中,当我尝试使用 Titanium 中的 Facebook 模块登录 Facebook 时,在 logcat 中出现以下错误:</p>

<pre><code>E/FacebookModule(29188): (main) LoginDialogListener onFacebookError: null
E/FacebookModule(29188): com.facebook.android.FacebookError
E/FacebookModule(29188):    at com.facebook.android.Facebook.onSessionCallback(Facebook.java:433)
E/FacebookModule(29188):    at com.facebook.android.Facebook.access$000(Facebook.java:97)
E/FacebookModule(29188):    at com.facebook.android.Facebook$2.call(Facebook.java:379)
E/FacebookModule(29188):    at com.facebook.Session$3$1.run(Session.java:1239)
E/FacebookModule(29188):    at android.os.Handler.handleCallback(Handler.java:605)
E/FacebookModule(29188):    at android.os.Handler.dispatchMessage(Handler.java:92)
E/FacebookModule(29188):    at android.os.Looper.loop(Looper.java:137)
E/FacebookModule(29188):    at android.app.ActivityThread.main(ActivityThread.java:4424)
E/FacebookModule(29188):    at java.lang.reflect.Method.invokeNative(Native Method)
E/FacebookModule(29188):    at java.lang.reflect.Method.invoke(Method.java:511)
E/FacebookModule(29188):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/FacebookModule(29188):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/FacebookModule(29188):    at dalvik.system.NativeStart.main(Native Method)
E/FacebookModule(29188): (main) onAuthFail: null
</code></pre>

<p>这是我用来尝试登录 facebook 的代码:</p>

<pre><code>var fb = require(&#39;facebook&#39;);
fb.appid = FACEBOOK_APP_ID;
fb.permissions = [&#39;publish_stream&#39;];
fb.forceDialogAuth = true;
fb.addEventListener(&#39;login&#39;, function(e) {
    if (e.success) {
      socialFacebook.image = imagesPath + &#34;kinedu_0000_btn_FB.png&#34;;
    } else if (e.error) {
      alert(&#39;Error: &#39; + e.error);
    } else if (e.cancelled) {
      alert(&#34;Canceled&#34;);
    }
});

var socialFacebook = Ti.UI.createImageView({
    image:imagesPath + &#34;kinedu_0000_btn_FB.png&#34;,
    left:&#34;5%&#34;,
    bottom:10,
    right:Ti.Platform.displayCaps.platformWidth/2   
});

function socialFacebookTouchStart()
{      
    var animateTouchStart = Ti.UI.createAnimation({
      bottom:9, duration:200
    });
    socialFacebook.animate(animateTouchStart);
}
function socialFacebookTouchEnd()
{         
    var animateTouchEnd = Ti.UI.createAnimation({
      bottom:10, duration:200
    });
    socialFacebook.animate(animateTouchEnd);            
    animateTouchEnd.addEventListener(&#34;complete&#34;, function(e){
      if(fb.loggedIn)
      {
            //open facebook posting window
            alert(&#39;logged in to facebook&#39;);
            var openPostingOnFacebookMainView = Ti.UI.createAnimation({
                opacity:1,
                duration:250
            });
            var openPostingOnFacebookViewAnimation = Ti.UI.createAnimation({
                opacity:1,
                top:0,
                duration:250
            });
            postingOnFacebookView.animate(openPostingOnFacebookViewAnimation);

            openPostingOnFacebookViewAnimation.addEventListener(&#34;complete&#34;, function(e){
                postingOnFacebookMainView.animate(openPostingOnFacebookMainView);
            });
      }
      else
      {
            alert(&#39;not logged in&#39;)
            fb.authorize();
      }
    });
}

socialFacebook.addEventListener(&#34;touchstart&#34;, socialFacebookTouchStart);

socialFacebook.addEventListener(&#34;touchend&#34;, socialFacebookTouchEnd);
</code></pre>

<p>我有一个 View ,当它被触摸时应该触发一个登录到 facebook 的事件,如果登录成功,那么它应该显示另一个 View 。但是对 Facebook 的调用失败,我收到了该错误消息。
在 iOS 中,代码几乎相同,只是模块的启动方式不同,以使用 iOS 6 内置的 Facebook 登录:</p>

<pre><code>var fb = require(&#39;facebook&#39;);
fb.appid = 548069311920318;
fb.permissions = [&#39;read_stream&#39;];
fb.forceDialogAuth = false;
</code></pre>

<p>但是,我收到以下错误:用户取消了登录过程。如果我唯一要做的就是单击 View 登录,我怎么能取消该过程?
这是我第一次使用 Facebook 模块,我正在按照文档中提供的示例进行操作,但我不知道为什么在 Android 和 iOS 上都会出现这些错误。如果您能提供任何帮助,我将不胜感激。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>检查您的 Facebook 应用是否处于 <code>沙盒模式</code>。</p>

<p>转到您的 Facebook 开发人员控制台,查看是否选中了 sanbox 模式复选框。如果选中,则取消选中它并使应用程序生效(对所有用户可见)。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于android - 无法使用附加模块登录 Facebook,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18136317/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18136317/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: android - 无法使用附加模块登录 Facebook