使用用户名和密码登录facebook。有没有办法做到这一点?

时间:2011-08-23 21:30:55

标签: facebook

我有一个移动应用程序,我希望用户将他的facebook凭据信息发送到服务器,服务器将代表他在facebook(获取朋友列表等)中行动。 我正在研究它,但我只找到有关这个oauth2的信息,用户在Facebook中通过特殊链接登录,所以我的应用程序可以访问他的FB信息。这对我没有帮助,因为我想在服务器端访问这些信息,而不是应用程序本身。有什么方法可以使用用户名和密码登录吗?

我有一个用于Facebook聊天的WP7应用程序,我在其中输入我的用户名和密码并且我连接,所以它应该是某种方式来执行它,对吗?

修改 因为它违反了服务条款,我正在考虑做以下事情: 我的服务器向我的客户端发送URL,以便用户可以登录并允许我的应用程序访问其信息。之后,我的服务器访问它。 那可能吗?

3 个答案:

答案 0 :(得分:1)

这是反对他们的,但你可以使用

<?php

/* EDIT EMAIL AND PASSWORD */
$EMAIL      = "";
$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].";";

/*
NOW TO JUST OPEN ANOTHER URL EDIT THE FIRST ARGUMENT OF THE FOLLOWING FUNCTION.
TO SEND SOME DATA EDIT THE LAST ARGUMENT.
*/
echo cURL("http://www.facebook.com/",null,$cookie,null);
?>

http://www.daniweb.com/web-development/php/code/290893

答案 1 :(得分:1)

您可以使用TOS友好的解决方案是让用户在您的网站上注册并使用Facebook SDK授予offline_access令牌。您的移动应用可以使用该令牌代表您的移动应用中的用户发出请求。我很清楚,你要求获得你打算用它的许可。

答案 2 :(得分:1)

FB正在删除offline_access令牌。

我猜这个问题无法解决。

没有offline_access,令牌在60天后到期,无法使用用户名和密码访问(禁止使用TOS)