GVKun编程网logo

php – 在localhost上设置Facebook登录(facebook选择php)

3

本文将介绍php–在localhost上设置Facebook登录的详细情况,特别是关于facebook选择php的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将

本文将介绍php – 在localhost上设置Facebook登录的详细情况,特别是关于facebook选择php的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Android facebook登录Spring Social webapp、Android facebook登录无法使用已安装的Facebook应用程序、Android Facebook登录没有Facebook登录按钮、android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()的知识。

本文目录一览:

php – 在localhost上设置Facebook登录(facebook选择php)

php – 在localhost上设置Facebook登录(facebook选择php)

我一直在按照此处列出的步骤创建Facebook App登录:
http://developers.facebook.com/docs/howtos/login/server-side-login/

我在第3步.我在localhost上进行开发,然后我将发布到具有不同App ID的Azure网站.我想首先在localhost上工作. (我还没有尝试使用非localhost域.)

在我的Facebook App配置页面上,我设置了几个相关字段:
站点URL:http:// localhost:8052 /(添加空格以允许子集到Stack Overflow)
应用程序域:localhost

如果没有设置Facebook代码,main.PHP会重定向到登录页面.这很好用.

<head>
<?PHP
   if(!isset($_SESSION['code'])) {
      echo ('<Meta http-equiv="REFRESH" content="0;url=/login.PHP" />');
   }
?>
</head>

login.PHP使用从其示例中复制的代码重定向到Facebook的登录页面.

<?PHP

   include '/lib/url.PHP';

   $app_id = "XXXXX";
   $app_secret = "XXXXX";
   $my_url = CreateUrlForPage('welcome.PHP');

   session_start();

   $code = '';
   if(!isset($_REQUEST["code"])) {
     $_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection
     $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
       . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
       . $_SESSION['state'];

     echo $my_url.'<br/>';
     echo $dialog_url.'<br/>';
     echo("<script> top.location.href='" . $dialog_url . "'</script>");
   }
?>  

很明显,我已经混淆了上面的App ID.

我的“CreateUrlForPage”函数生成的URL与facebook登录URL一样正常:

http://localhost:8052/welcome.PHP
https://www.facebook.com/dialog/oauth?client_id=XXXX&redirect_uri=http%3A%2F%2Flocalhost%3A8052%2Fwelcome.PHP&state=XXXX

(再次,这里有一些混淆.真正的值看起来没问题.第一个是整数,第二个是长十六进制字符串.)

当我导航到http:// localhost:8052 / login.PHP时,页面重定向到Facebook并发出完全无用的错误:“发生错误.请稍后重试.”

我查看了Stack Overflow上的其他一些帖子,但是他们没有解决我的问题.

我得到的错误看起来就像这里描述的错误:
Facebook application login error on localhost
提供的建议是设置域名和站点URL,我已经完成了.

这个问题还有一个链接:Running Facebook application on localhost
他们再次建议使用网站网址.他们还谈论app-canvas,这不是我正在使用的东西,我不知道它与登录有什么关系.

在我设置网站URL和域之前,我得到了一个不同的错误 – 一个告诉我需要设置网站URL的错误.

解决方法:

这段代码对我有用.仔细检查你的Facebook应用程序ID和我的网站网址设置为http:// localhost:8052 /真的不需要设置域名登录谢谢

http://gamma.owlweb.com.ua/index.php/?route=account/register/fb

<?PHP

$app_id = "xxx";    $app_secret = "xxx"; 
$my_url ="http://localhost:3080/abc.PHP";

session_start();

$code = '';    

if(!isset($_REQUEST["code"])) {
  $_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection
  $dialog_url = 
    "https://www.facebook.com/dialog/oauth?client_id=".$app_id
    ."&redirect_uri=".urlencode($my_url)
    ."&state=".$_SESSION['state'];

  echo $my_url.'<br/>';
  echo $dialog_url.'<br/>';
  echo("<script> top.location.href='" . $dialog_url . "'</script>");
} 
?>

Android facebook登录Spring Social webapp

Android facebook登录Spring Social webapp

我目前正在使用 Spring Social和 Spring Security开发一个Web应用程序.在Web应用程序中,特定用户可以使用ProviderSignInController在Facebook上登录.当工作人员成功通过FB进行身份验证时,他们也会以编程方式登录我的Spring Security本地Web应用程序.这个概念改编自 spring-social-showcase. Spring Social然后允许经过身份验证的用户创建事件,这些事件也在Facebook页面上创建.

现在我想写一个Android应用程序,它允许用户发布到我的留言簿,并通过我的Web应用程序查看/创建事件.我现在的问题是如何从我的andoid应用程序中实现登录.在我的Web应用程序中,UsersConnectionRepository将facebook帐户映射到本地帐户.我可以简单地重用这些数据并从我的Android应用程序中以与从Web应用程序完全相同的方式登录吗?
ProviderSignInController为http:// _ webapp_ / signin / facebook添加路径映射,重定向到facebook登录页面.这可以简单地在Android上使用WebView完成吗?

看着spring-android-facebook-client我很困惑.此示例似乎手动管理OAuth身份验证.但我还没想到,当后台中没有其他已经管理认证的Web应用程序时,这是实现它的方式还是另一种可能性.

欢迎任何反馈.谢谢.

Jeyp

解决方法

Now i want to write a android app which enables users to post to my
guestbook and view/create events via my web application.

Android客户端需要一种方法来登录您的Web应用程序,以便发布到安全的RESTful端点,OAuth是一种很好的方法. Spring Security OAuth是Spring Security的扩展,可以允许第三方移动或Web客户端与您的网站进行交互.

配置OAuth服务器后,您可以在Android客户端中使用Spring Social创建自定义提供程序,以建立与您的网站的OAuth连接.在这种情况下,您的用户将使用其本地凭据对您的网站进行身份验证.连接后,您的Android应用程序可以再次使用您的自定义Spring Social API绑定将事件发布到您网站中的RESTful端点.

在这种情况下,您的用户不会从Android应用程序向Facebook进行身份验证.这假设他们已经在您的网站上建立了帐户和Facebook连接.事实上,这就是SpringSource Greenhouse参考应用程序的工作原理.

这将我们带回到您问题的前一部分:

When staff members authenticate with FB successfully,they are programatically signed in for my local webapp with Spring Security,too.

如果我理解正确,您要求授权您的Android客户端使用Facebook凭据访问您的第三方网站.虽然这当然是可能的,但目前尚未通过Spring Social和Spring for Android支持.

另一种选择是考虑您的网站的移动版本.这样,Android和其他移动设备就可以使用他们的Facebook凭据简单地从普通浏览器登录到您的网站.用户界面更适合移动设备,它可以消除额外OAuth服务器/客户端配置的额外复杂性.

最后,要解决问题的最后部分.这与前面的部分实际上是一个单独的问题:

This example seems to manually manage the OAuth authentication.

主要问题是Spring Social尚不支持资源所有者凭证授权(Rocg).添加此功能将简化在Android上获取Facebook访问令牌的过程,因为您不必处理浏览器重定向.有关更多信息,请参阅此Spring Social issue.

由于缺乏Rocg,Spring for Android示例应用程序演示了一种使用Spring Social获取访问令牌的方法.在这种情况下,它是客户端身份验证流程的修改版本.作为参考,Facebook有一个有用的页面描述了所有可用的authentication methods.在成功认证后,webview重定向到一个URL,此时应用程序能够从该URL检索访问令牌.

SpringSource正在讨论如何在未来版本中简化身份验证并改进Spring Social和Spring for Android之间的这一部分集成.

Android facebook登录无法使用已安装的Facebook应用程序

Android facebook登录无法使用已安装的Facebook应用程序

我已经设置了简单的Facebook登录.对于 Android 2.3.6,所有功能都应该如此,用户获得提示登录对话框,输入数据和应用程序继续.我以为这是android版本的错误,但是当手机上安装了Facebook应用程序时,会发现登录不起作用!

测试了:
galaxy Ace 2.3.6
HTC Desire 4.1.2
银河笔记4.1.2
Android模拟器4.1.2

即使Facebook的样品也不工作!

每次应用执行时 – else {
Log.d(“SESSION NOT OPENED”,“SESSION NOT OPENED”);
}

似乎会话没有打开,但为什么呢?按照本指南 – https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

码:

Session.openActiveSession(this,true,new Session.StatusCallback() {

        @Override
        public void call(final Session session,SessionState state,Exception exception) {

            if (session.isOpened()) {

                Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {

                    @Override
                    public void onCompleted(GraphUser user,Response response) {
                        if (user != null) {
                            Log.d("Access_token",session.getAccesstoken());
                        }
                    }
                });
            } else {
                Log.d("SESSION NOT OPENED","SESSION NOT OPENED");
            }
        }
    });

解决方法

查看步骤4: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/的底部

如果您没有正确输入应用程序密钥哈希,Facebook通过WebView弹出窗口登录(如果该应用未安装)仍然可以正常工作,但是通过本机的Facebook应用程序登录将不会.

您应该在LogCat中看到这个异常:

com.facebook.http.protocol.ApiException: remote_app_id does not match stored id

Facebook SDK打印其例外,如果还有其他问题,请检查.

Android Facebook登录没有Facebook登录按钮

Android Facebook登录没有Facebook登录按钮

我想在不使用Facebook登录按钮的情况下登录Facebook.所以我在默认的 android按钮上应用了click事件.

但我得到错误无法解决方法logInWithReadPermissions(..)..

这是我的代码.任何帮助将不胜感激

btnFBLogin.setonClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v)
       {    
            LoginManager.getInstance().logInWithReadPermissions(this,Arrays.asList("public_profile","email"));// here giving error can not resolve method
       }
});

解决方法

您正在传递按钮的参考

但是你需要传递Activity的参考

请使用以下可能对您有帮助的代码.

LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this,"email"));

android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()

android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()

我正在通过facebook实现登录并使用SDK 4.1.0获取用户电子邮件ID,如 facebook documentation所示,但问题是每次在onActivityResult之后调用registerCallback时,调用而不是onSuccess onCancel.

package com.dexterous.hellologin;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBaractivity;
import android.util.Log;

import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;


public class MainActivity2 extends ActionBaractivity {

CallbackManager callbackManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();

    setContentView(R.layout.activity_main_activity2);

    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions("email");
    // If using in a fragment
    //   loginButton.setFragment(this);
    // Other app specific specialization
    // Callback registration
        loginButton.registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code
            Log.e("TAG","success");
        }

        @Override
        public void onCancel() {
            // App code
            Log.e("TAG","onCancel");
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
            Log.e("TAG","error");
        }
    });
}

@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);
    callbackManager.onActivityResult(requestCode,data);
    Log.e("TAG","onActivityResult");
   }
}

每次我得到输出

onActivityResult

onCancel

我没有得到包含按钮取消和登录的facebook登录屏幕.

卸载Facebook应用程序从移动设备错误更改为无效的应用程序ID

这是堆栈跟踪

06-04 10:55:16.631 19864-19864/com.dexterous.hellologin I/WebViewFactory﹕ Loading com.google.android.webview version 42.0.2311.138 (code 2311138)
06-04 10:55:16.706 19864-19864/com.dexterous.hellologin I/LibraryLoader﹕ Time to load native libraries: 4 ms (timestamps 8772-8776)
06-04 10:55:16.706 19864-19864/com.dexterous.hellologin I/LibraryLoader﹕ Expected native library version number “”,actual native library version number “”
06-04 10:55:16.717 19864-19864/com.dexterous.hellologin W/art﹕ Attempt to remove local handle scope entry from IRT,ignoring
06-04 10:55:16.816 19864-19864/com.dexterous.hellologin V/WebViewChromiumFactoryProvider﹕ Binding Chromium to main looper Looper (main,tid 1) {28a6fbd9}
06-04 10:55:16.816 19864-19864/com.dexterous.hellologin I/LibraryLoader﹕ Expected native library version number “”,actual native library version number “”
06-04 10:55:16.819 19864-19864/com.dexterous.hellologin I/chromium﹕ [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0,default verbosity = 0
06-04 10:55:16.834 19864-19864/com.dexterous.hellologin I/browserStartupController﹕ Initializing chromium process,singleProcess=true
06-04 10:55:16.838 19864-19864/com.dexterous.hellologin W/art﹕ Attempt to remove local handle scope entry from IRT,ignoring
06-04 10:55:16.841 19864-19864/com.dexterous.hellologin E/SysUtils﹕ ApplicationContext is null in ApplicationStatus
06-04 10:55:16.869 19864-19864/com.dexterous.hellologin W/chromium﹕ [WARNING:resource_bundle.cc(286)] locale_file_path.empty()
06-04 10:55:16.870 19864-19864/com.dexterous.hellologin I/chromium﹕ [INFO:aw_browser_main_parts.cc(63)] Load from apk succesful,fd=63 off=46992 len=3337
06-04 10:55:16.871 19864-19864/com.dexterous.hellologin I/chromium﹕ [INFO:aw_browser_main_parts.cc(76)] Loading webviewchromium.pak from,fd:64 off:7953032 len:1161174
06-04 10:55:17.024 19864-19953/com.dexterous.hellologin W/chromium﹕ [WARNING:data_reduction_proxy_config.cc(150)] SPDY proxy OFF at startup
06-04 10:55:17.047 19864-19864/com.dexterous.hellologin W/art﹕ Attempt to remove local handle scope entry from IRT,ignoring
06-04 10:55:17.060 19864-19864/com.dexterous.hellologin W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
06-04 10:55:24.893 19864-19864/com.dexterous.hellologin W/BindingManager﹕ Cannot call determinedVisibility() – never saw a connection for the pid: 19864
06-04 10:55:26.140 19864-20020/com.dexterous.hellologin E/Adreno-ES20﹕ : Invalid texture format! Returning error!
06-04 10:55:26.140 19864-20020/com.dexterous.hellologin E/Adreno-ES20﹕ : Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!
06-04 10:55:26.198 19864-19912/com.dexterous.hellologin E/Adreno-ES20﹕ : Invalid texture format! Returning error!
06-04 10:55:26.198 19864-19912/com.dexterous.hellologin E/Adreno-ES20﹕ : Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT!
06-04 10:58:32.287 19864-19864/com.dexterous.hellologin E/TAG﹕ onCancel
06-04 10:58:32.287 19864-19864/com.dexterous.hellologin E/TAG﹕ onActivityResult
06-04 10:59:25.498 19864-19864/com.dexterous.hellologin I/art﹕ Explicit concurrent mark sweep GC freed 16056(1325KB) AllocSpace objects,0(0B) LOS objects,39% free,9MB/16MB,paused 856us total 79.028ms

表现
    
    

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUetoOTH"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.dexterous.hellologin.MainActivity2"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main_activity2" >
    </activity>

    <Meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="1437829111203883" />

</application>

</manifest>

解决方法

Problem is here that you are using Facebook APPId directly and You should use Like this

<Meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id" />

In sting xml

<string name="app_id">1437829111203883 </string>

关于php – 在localhost上设置Facebook登录facebook选择php的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Android facebook登录Spring Social webapp、Android facebook登录无法使用已安装的Facebook应用程序、Android Facebook登录没有Facebook登录按钮、android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()的相关知识,请在本站寻找。

本文标签: