无法读取facebook api中的html页面

时间:2017-03-29 18:55:24

标签: php html facebook curl file-get-contents

我试图在facebook messenger api中读取网站html输出,代码正在服务器上工作,但是当我在facebook api(messenger)中尝试时它会出错,这就是我得到的:< / p>

    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>302 Moved</TITLE></HEAD><BODY>
    <H1>302 Moved</H1>
    The document has moved
    <A HREF="https://www.google.ca/?gfe_rd=cr&amp;ei=SaHbWPOrQXp_JvNB">here</A>.
    </BODY></HTML>

我已尝试过file_get_contents,fopen,readfile,curl等所有错误。
我在使用curl时尝试将网站更改为安全连接(https),https://google.com,并将错误消息更改为:

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>403 Forbidden</title>
    </head><body>
    <h1>Forbidden</h1>
    <p>You don't have permission to access /
    on this server.<br />
    </p>
    <p>Additionally, a 403 Forbidden
    error was encountered while trying to use an ErrorDocument to handle the request.</p>
    </body></html>

stackoverflow显示:

jQuery(window).width() > 769

我该怎么办?

1 个答案:

答案 0 :(得分:0)

谷歌不能用于iframe和卷曲谷歌服务器阻止它,你的代码在其他网站上工作得很好,只有建立owm页面并使用google search api.

代码示例:

直接发出HTTP请求

如果外部应用程序需要Google身份验证,或者此库中尚未提供Google API,则可以直接发出HTTP请求。

authorize方法返回授权的Guzzle客户端,因此使用客户端发出的任何请求都将包含相应的授权。

// create the Google client
$client = new Google_Client();

/**
 * Set your method for authentication. Depending on the API, This could be
 * directly with an access token, API key, or (recommended) using
 * Application Default Credentials.
 */
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Plus::PLUS_ME);

// returns a Guzzle HTTP Client
$httpClient = $client->authorize();

// make an HTTP request
$response = $httpClient->get('https://www.googleapis.com/plus/v1/people/me');