Php 从外部网站登录Facebook

Php 从外部网站登录Facebook,php,facebook,curl,facebook-login,Php,Facebook,Curl,Facebook Login,我的网站上有Facebook应用程序。当我们整合Facebook时,每次都会出现Facebook登录页面,但我想从mysite登录Facebook。我将为facebook提供单独的登录表单,当我们在mysite登录中输入facebook Credential时,它将在不询问facebook登录页面的情况下登录facebook。有可能吗?我尝试了下面的curl函数,但没有成功 <?php $EMAIL = "fb_user_email"; $PASSWORD = "pass

我的网站上有Facebook应用程序。当我们整合Facebook时,每次都会出现Facebook登录页面,但我想从mysite登录Facebook。我将为facebook提供单独的登录表单,当我们在mysite登录中输入facebook Credential时,它将在不询问facebook登录页面的情况下登录facebook。有可能吗?我尝试了下面的curl函数,但没有成功

<?php

$EMAIL      = "fb_user_email";
 $PASSWORD   = "password";

  function cURL($url, $header=NULL, $cookie=NULL, $p=NULL)
  {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_HEADER, $header);
      curl_setopt($ch, CURLOPT_NOBODY, $header);
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($ch, CURLOPT_COOKIE, $cookie);
      curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
      if ($p) {
         curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
         curl_setopt($ch, CURLOPT_POST, 1);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
       }
       $result = curl_exec($ch);
       if ($result) {
          return $result;
        }
        else {
          return curl_error($ch);
        }
        curl_close($ch);
    }

$a = cURL("https://login.facebook.com/login.php?login_attempt=1",true,null,"email=$EMAIL&pass=$PASSWORD");
preg_match('%Set-Cookie: ([^;]+);%',$a,$b);
$c = cURL("https://login.facebook.com/login.php?login_attempt=1",true,$b[1],"email=$EMAIL&pass=$PASSWORD");
preg_match_all('%Set-Cookie: ([^;]+);%',$c,$d);
for($i=0;$i<count($d[0]);$i++)
$cookie.=$d[1][$i].";";


echo cURL("http://graph.facebook.com/oauth/authorize?client_id=APP_IDredirect_uri=APP_REDIRECT_URL&display=touch&scope=publish_stream, user_checkins, publish_checkins, offline_access",null,$cookie,null);
?>

请帮我做。这是我的任务


提前感谢

Facebook不允许从第三方应用程序直接登录。必须使用facebook网站进行身份验证

它增加了安全性,因为用户凭据不与第三方应用程序共享,而仅与facebook共享。

不,这是不可能的

浏览一下Facebook网站,就会发现登录表单的源代码中似乎有CSRF保护。所以你不能在你自己的网站上有一个指向他们的表单

以您似乎正在尝试的方式使用cURL也不会起作用,因为您无法设置Facebook在用户浏览器上发送的cookies,因为您无法将它们与其他域关联

在这两种情况下,期望人们输入您网站上另一个站点的登录凭据充其量只是训练他们使用密码不安全。(这并不是说facebook通过“好友查找器”不断尝试获取我的电子邮件密码就更好了)