2011-05-03 71 views
0

我正在做一个Facebook的应用程序和我已经请求获取他的信息的权限,但数据不是被保存。抓住Facebook用户的电子邮件与'电子邮件'的权限,但没有'offline_access'的权限和会话已经不存在

现在的问题是,我需要他们的电子邮件,这是之前授权,但我现在不能抢。现在我知道我应该也问过'offline_access'权限。 : -/

现在是否有其他方式来抓取电子邮件? 像我的FB页面上的一些脚本一样检查用户是否被授权了解他的电子邮件,如果是,我抓取信息或类似的东西?

谢谢..

回答

1

你必须让你的用户重新访问您的应用程序,并使用有效的访问令牌获取/存储他们的电子邮件地址。如果没有有效的访问令牌(脱机访问令牌或标准访问令牌),您将无法访问用户的电子邮件地址

+0

谢谢JimR。我认为offline_access将允许随时查询他们的电子邮件地址(否则,询问offline_access与不同之处是什么?)。 另外,我已经知道我需要什么。好消息是,大多数用户回来看比赛的排名,所以我用一个脚本向我发送了一封包含用户电子邮件的电子邮件(使用有效的令牌)。我会在下面发布解决方案。 – Diego 2011-05-05 04:18:41

0

那么,那是节省我的解决方案: 向我的电子邮件发送所有用户这又回到了我的应用程序,因为我一直在寻找一个电子邮件特定的(但我可以在数据库中,而不是保存)..

享受, 迭戈·特里戈

#Creating the facebook object 
$facebook = new Facebook(array(
    'appId' => 'APP_ID', 
    'secret' => 'APP_SECRET', 
    'cookie' => true 
)); 

# Let's see if we have an active session 
$session = $facebook->getSession(); 


if($session){ 
    try { 

     $facebook_id = $facebook->getUser(); 
     $_fb_profile = $facebook->api('/me'); //if not null valid session 

     $facebook_name = $_fb_profile['name']; 
     $facebook_link = $_fb_profile['link']; 
     $facebook_email = $_fb_profile['email']; 
     mail('[email protected]',$facebook_name,$facebook_email); 
     //echo "authorEmail = '$facebook_email';"; 
    } 
    catch (FacebookApiException $e) { 
     //nothing.. 
     } 
相关问题