发送json响应时Facebook数据删除请求错误

问题描述 投票:0回答:0

在执行 Facebook 数据删除请求时,Facebook 从他们这边调用我的方法并告诉我我发回给他们的 json 响应不是他们期望收到的。如果您在此处查看他们的文档Facebook 数据删除请求。返回 Facebook 的响应应该如下

{ url: '<url>', confirmation_code: '<code>' }

Facebook 为了返回这个 json 而发布的代码是这样的

$data = array(
  'url' => $status_url,
  'confirmation_code' => $confirmation_code
);
echo json_encode($data);

这不会创建 Facebook 打算作为回应的内容。从字面上看,属性名称周围不需要引号,实际值周围不需要单引号。所以我用这个构建了它

$return_value = "{ url: '$url', confirmation_code: '$confirmation_code' }";

是的,仍然没有成功。 IM 在这里有点不知所措,因为我一直在尝试使用

response()->json()
json_encode()
的各种方法,这会在整个字符串周围放置双引号或在 url 周围放置转义字符,这被认为是原因之一他们告诉我 json 不是他们所期望的。因此,如果有人知道 Facebook 希望此响应看起来如何。请告诉我。 谢谢你的帮助

public function removeFBDataCallback(Request $request)
    {
        $signed_request = $request->get('signed_request');
        $data = $this->parse_signed_request($signed_request);
        $fb_user_id = $data['user_id'];

        $fb_user = $this->UsersRepository->CheckFacebookUIDExisted($fb_user_id);
  
        if (!$fb_user) {
  
            error_log("No user with facebook id: $fb_user_id found when trying to remove data during facebook deletion callback");
            return response()->json(['code' => 403, 'data' => ['message' => 'Facebook user not found when deleting facebook data']]);
        }
        else {
            

            $fb_delete_confirmation = new FBDeleteConfirmation();
            $fb_delete_confirmation->facebook_id = $fb_user->facebook_user_id;
            $fb_delete_confirmation->token = genToken(20);
            $fb_delete_confirmation->save();


            $fb_user->is_account_facebook = 0;
            $fb_user->facebook_user_id = null;
            $fb_user->save();

            
            $confirmation_code = base64_encode("abc123");
            $url = url('login').'/facebook'.'/dataDeleteConfirmation'.'?confirmationid'.('=').($confirmation_code);


            error_log('------------------');

            $return_value = "{ url: '$url', confirmation_code: '$confirmation_code' }";
            error_log($return_value);
            return json_encode($return_value);

        }
        
    } 
facebook laravel-5 facebook-php-sdk
© www.soinside.com 2019 - 2024. All rights reserved.