菜鸟教程小白 发表于 2022-12-13 07:13:46

ios - 使用 ionic 和 ngCordovaOauth 卡在 Facebook 登录


                                            <p><p>我已经为此苦苦挣扎了 2 天或更长时间。
它只是不起作用。无论如何,我都会卡在“无法获取/回调”屏幕上。</p>

<p>我正在尝试登录 Facebook。</p>

<p>我的设置:</p>

<ul>
<li>网站网址:<a href="http://localhost/callback" rel="noreferrer noopener nofollow">http://localhost/callback</a> </li>
<li>移动网站网址:<a href="http://localhost/callback" rel="noreferrer noopener nofollow">http://localhost/callback</a> </li>
<li> ionic :1.4.1</li>
<li><p>我跑了:</p>

<pre><code>cordova plugin add org.apache.cordova.inappbrowser
cordova plugin add cordova-plugin-whitelist
</code></pre> </li>
<li><p>在我的 app.js 中:</p>

<pre><code>angular.module(&#39;starter&#39;, [&#39;ionic&#39;, &#39;ngCordova&#39;,&#39;starter.controllers&#39;, &#39;starter.services&#39;,&#39;app-constants&#39;,&#39;ui.utils.masks.br.phone&#39;])
</code></pre>

<p>在我的 login-service.js:</p>

<pre><code>angular.module(&#39;starter.services&#39;).service(&#39;LoginService&#39;, function($http, apiEndPoint, $location, $cordovaOauth)
</code></pre>

<p>....</p>

<pre><code>facebookLogin: function() {
return $cordovaOauth.facebook(appID, [&#34;email&#34;, &#34;read_stream&#34;, &#34;user_website&#34;, &#34;user_location&#34;, &#34;user_relationships&#34;]).then(function(result) {

    accessToken = result.access_token;
    console.log(JSON.stringify(result));
    return accessToken
}, function(error) {
    alert(&#34;There was a problem signing in!See the console for logs&#34;);
    alert(error);
    console.log(error);
});
},
</code></pre> </li>
</ul>

<p>在 config.xml:</p>

<pre><code>&lt;access origin=&#34;*&#34;/&gt;
</code></pre>

<p>在 iOS 模拟器和 iOS 真实设备上运行。通过 ionic emulate ios 和 Xcode 进行仿真。</p>

<p>我已经重新安装了所有东西,包括 Nodejs。</p>

<p>我明白了:
<img src="/image/gnztQ.png" alt="error using iOS emulator"/> </p>

<p>我认为这与 ng-cordova-oauth 错误有关:<a href="https://github.com/nraboy/ng-cordova-oauth/issues/43" rel="noreferrer noopener nofollow">https://github.com/nraboy/ng-cordova-oauth/issues/43</a> </p>

<p>我也发过帖。</p>

<p>有什么想法吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我解决了!!问题不在于 ngCordovaOauth。
问题是 Facebook 返回的是错误代码而不是 access_token。</p>

<p>所以解决方案正在改变:</p>

<pre><code>facebookLogin: function() {
   return $cordovaOauth.facebook(appID, [&#34;email&#34;, &#34;read_stream&#34;, &#34;user_website&#34;, &#34;user_location&#34;, &#34;user_relationships&#34;]).then(function(result) {
</code></pre>

<p>到这里:</p>

<pre><code>facebookLogin: function() {
   return $cordovaOauth.facebook(appID, [&#34;email&#34;]).then(function(result) {
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用 ionic 和 ngCordovaOauth 卡在 Facebook 登录,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/30262925/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/30262925/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用 ionic 和 ngCordovaOauth 卡在 Facebook 登录