本文将介绍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)
- Android facebook登录Spring Social webapp
- Android facebook登录无法使用已安装的Facebook应用程序
- Android Facebook登录没有Facebook登录按钮
- android – Facebook登录CallbackManager FacebookCallback每次调用onCancel()
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应用程序,它允许用户发布到我的留言簿,并通过我的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应用程序
测试了:
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"); } } });
解决方法
如果您没有正确输入应用程序密钥哈希,Facebook通过WebView弹出窗口登录(如果该应用未安装)仍然可以正常工作,但是通过本机的Facebook应用程序登录将不会.
您应该在LogCat中看到这个异常:
com.facebook.http.protocol.ApiException: remote_app_id does not match stored id
Facebook SDK打印其例外,如果还有其他问题,请检查.
Android Facebook登录没有Facebook登录按钮
但我得到错误无法解决方法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()
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()的相关知识,请在本站寻找。
本文标签: