【问题标题】:Grab Facebook user e-mail with 'email' permission but without 'offline_access' permission and the session has gone获取具有“电子邮件”权限但没有“离线访问”权限的 Facebook 用户电子邮件,会话已结束
【发布时间】:2011-08-17 10:37:08
【问题描述】:

我正在为 facebook 做一个应用程序,我已经请求获取他的信息的权限,但数据没有保存。

现在的问题是我需要他们以前授权但现在无法获取的电子邮件。现在我知道我也应该询问“offline_access”权限。 :-/

现在还有其他方法可以获取电子邮件吗? 类似于我的 FB 页面上的一些脚本,检查用户是否被授权知道他的电子邮件,如果是,我获取信息或类似的东西?

谢谢..

【问题讨论】:

    标签: facebook email permissions


    【解决方案1】:

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

    【讨论】:

    • 谢谢吉姆。我认为offline_access 将允许随时查询他们的电子邮件地址(否则,询问offline_access 有什么区别??)。另外,我已经弄清楚我需要什么。好在大部分用户都是回来看比赛排名的,所以我用脚本给我发了一封带有用户邮箱的邮件(使用有效的token)。我将在下面发布解决方案。
    【解决方案2】:

    嗯,这就是拯救我的解决方案: 将所有返回我的应用程序的用户发送到我的电子邮件,因为我正在寻找一封特定的电子邮件(但我可以保存在数据库中)..

    享受, 迭戈·特里戈

    #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('myemail@domain.com',$facebook_name,$facebook_email);
            //echo "authorEmail = '$facebook_email';";
        }
        catch (FacebookApiException $e) {
            //nothing..
            }
    

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 2013-03-07
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多