无法使用curl请求连接到Facebook

2024-03-23

几周前我创建了一个简单的 Facebook 应用程序。我通过 Facebook API 请求用户许可来获取用户信息。但它上周突然停止工作,从那时起我一直在寻找答案。

基本上我曾经使用 file_get_contents 从 Facebook API 获取用户信息。但在它开始失败后我尝试将其更改为 cURL,但仍然无法正常工作。我尝试使用 Facebook PHP-SDK,甚至调试了 makeRequest 方法的代码,但我在所有方法中都得到了相同的返回。

当向 Facebook Open Graph URL 发出 cURL 请求时,请求会失败,错误号为 7 或 28。它们都是表示无法连接到网站或超时的错误代码。

我的网站位于共享主机上,我尝试使用 cURL 来获取其他网站,并且效果很好。但当我试图报复时http://www.facebook.com http://www.facebook.com,cURL 返回 FALSE。

托管有 SSL 证书,启用了 cURL 等。并且前段时间运行良好。我已经阅读了有关此问题的各种线程和帖子,尝试了许多不同的 cURL 选项,但它们似乎都不起作用。

有任何想法吗?

索引.php

$auth_url = "https://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . urlencode($GLOBALS['canvas_page']) . "&scope=publish_stream,email";
$signed_request = $_POST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($data["user_id"])) {
    echo("<script> top.location.href='" . $auth_url . "'</script>");
} else {
    $_SESSION['oauth_token'] = $data['oauth_token'];
    $_SESSION['user_id'] = $data["user_id"];
    $user = new User($_SESSION['user_id'], $_SESSION['oauth_token']);

用户等级

function __construct($fid, $at) {
    $this->facebook = new Facebook(array(
                'appId' => "<APP_ID>",
                'secret' => "<FACEBOOK_SECRET_ID>",
            ));
    $this->fid = $fid;
    $this->token = $at;
    if ($data = $this->getGraph()) {
    ...
    }
}

public function getGraph() {
    $session = $this->facebook->getUser();
    if ($session) {
        try {
            $access_token = $this->facebook->getAccessToken();
            $attachment = array('access_token' => $access_token);
            //$result = $this->facebook->api('/' . $this->fid, 'GET', $attachment);
            $result = $this->facebook->api('/' . $this->fid, 'GET');
            return $result;
        } catch (FacebookApiException $e) {
            return false;
        }
    }
}

Notes:

  • 在检查了 Facebook PHP SDK 方法后,我意识到我不需要发送访问令牌,因为如果访问令牌不在 $params 中,它将设置它。
  • 它深入到sdk中的makeRequest()方法,并从curl_exec返回false。

显然这与Facebook的循环DNS结构有关。我猜 Facebook 的某个地址失败了,但由于 DNS 缓存的原因,服务器仍在尝试连接到该地址。

托管提供商必须清除其 DNS 缓存才能解决该问题。

有关循环 DNS 的更多信息,您可以访问http://en.wikipedia.org/wiki/Round-robin_DNS http://en.wikipedia.org/wiki/Round-robin_DNS.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用curl请求连接到Facebook 的相关文章

  • PHP - 从 HTML 中提取文本、翻译并放回

    我正在使用 API 来翻译我的博客 但它有时会弄乱我的 html 这让我需要更多的工作来修复所有问题 我现在想做的是从 html 中提取内容 翻译它并将其放回原来的位置 我首先尝试使用 preg replace 来执行此操作 其中我将用诸如
  • PHP 致命错误:未捕获错误:未找到“Facebook\WebDriver\ChromeOptions”类

    namespace Facebook WebDriver use Facebook WebDriver Remote DesiredCapabilities use Facebook WebDriver Remote RemoteWebDr
  • “key”是MySqli中的保留字吗?我收到错误

    我刚刚真正接触 MySql MySqli 并且正在使用准备好的语句 除了这一行之外 我的整个脚本运行良好 if stmt con gt prepare SELECT bandHash userHash userPassHash type F
  • 如何在 PHP 中从serializeArray 获取 POST 值?

    我正在尝试这个我见过的新方法serializeArray with ajax var data form input serializeArray post var action process data data ajax etc 这样我
  • 使用PHP exec调用Node脚本并在finally方法之前将数据返回给PHP

    我有一个 PHP 脚本 它使用exec函数来执行 Node 脚本并将一些数据返回到同一 PHP 脚本 我的问题是我需要将数据返回给 PHP 而不必等待中的清理代码finally完成 我在下面编写了一些示例代码 向您展示代码的流程并说明我的问
  • 从 PHP 启动交互式 SSH bash 会话

    我正在使用 PHP 编写常见服务器管理任务的快捷方式 我正在使用deployer org 但这应该不重要 我想添加一个任务 用于在通过 SSH 连接到服务器后启动交互式 bash 提示符 例如 您将运行 dep ssh 其中 dep 是一个
  • Curl 错误:最多 (20) 个重定向

    尝试 CURL 到 myntra 时出现错误 我试图通过 DOMDOCUMENT 获取提取详细信息 但它给出了相同的错误 最多 20 个重定向 这是我的代码
  • 如何生成 iPhone 模拟器构建或 .zip 文件以在 Facebook 中提交以在 iOS 中进行审核

    我向 Facebook 提交 my app ipa 文件 但被 Facebook 拒绝 并向我发送此消息 我们审核团队的注释 iPhone 您能否重新提交以供审核 提供您的 iOS 应用程序的模拟器版本 而不是 ipa 文件 我正在 iOS
  • PHPSpreadsheet 文本旋转到 90 不起作用

    我正在尝试使用文本旋转到 90 度来使单元格具有垂直文本 但它不起作用 所有文本都是水平显示的 也许我做错了什么 这是我的 php 代码 spreadsheet new Spreadsheet Create a new worksheet
  • 在php中将指数数转换为小数

    我有一个指数格式的浮点数 即4 1595246940817E 17我想将其转换为十进制数 例如 2 99 等 任何帮助将不胜感激 format number sprintf 似乎不适合我 你需要像 BC 这样更好的数学扩展数学 GMP ht
  • Laravel:如何模拟依赖注入类方法

    我正在使用GitHub API https github com KnpLabs php github api通过一个Laravel API 包装器 https github com GrahamCampbell Laravel GitHu
  • 如何从自动添加的电子邮件中删除 data-saferedirecturl

    我正在使用 php 发送电子邮件 其中包含 exe 文件的下载链接 但是 gmail 在锚标记中添加了 data saferedirecturl 属性 该属性不允许下载文件 如果复制了网址并粘贴到新选项卡中 则开始下载 a href url
  • Facebook 开发者帐户最佳实践

    在我的公司 我们需要创建一个 Facebook 开发者帐户 但如果不提供实际个人帐户 即我的个人帐户或其他员工的个人帐户 的详细信息 我们似乎无法做到这一点 使用个人帐户没有多大意义 如果该人离开公司怎么办 如果帐户持有人不希望其他开发人员
  • 如何使用 php 将文本区域中的链接转换为链接元素?

    我正在创建一个脚本 它包含一个发布脚本 但我希望用户直接从其他任何地方复制链接 当他们发布链接文本时 链接文本应自动将链接转换为链接元素 a 例如 Ask this on http stackoverflow com now 成为 Ask
  • 为什么呼叫会话不起作用? (代码点火器 3)

    我的配置是这样的 config sess driver database select database driver config sess save path ci sessions name of the mysql table co
  • 获取 png 图像的像素的 alpha 值?

    我正在使用以下代码 img imagecreatefrompng image png col imagecolorat img x y alpha col gt gt 24 0x7F 但 alpha 值始终为 127 即使像素位于 x y
  • mcrypt_crypt 的替代方案?

    根据 php 7 0 mcrypt decrypt 已被弃用 我有以下代码 intSize mcrypt get iv size MCRYPT RIJNDAEL 256 MCRYPT MODE ECB strSize mcrypt crea
  • 获取完整的 url,包括哈希后的查询字符串

    如何获得完整URL包括后面的字符串参数hash tag 我试着回应 url SERVER REQUEST URI echo url 之后的字符串hash tag不会读 佩卡的评论应该是一个答案 hash标签后面的字符串参数不发送到服务器 它
  • 更新 Laravel 路由文件没有效果

    我正在尝试创建一个视图来显示数据库中的数据 但我发现我的路线文件不再执行任何操作 目前我正在尝试让测试功能正常工作 但是当我去 test它只是说 找不到网页 其他路线有效 即使我删除所有内容并保存文件 所有其他路线都可以工作 我努力了art
  • 上传文件最安全的方法是什么?

    我工作的公司最近在我们托管的网站上遭受了许多标头注入和文件上传漏洞攻击 虽然我们已经解决了标头注入攻击的问题 但我们尚未控制上传漏洞 我正在尝试设置一系列即插即用类型的上传脚本以供内部使用 设计人员可以将其复制到其网站的结构中 修改一些变量

随机推荐