Php 对非对象调用成员函数setFileUploadSupport()

Php 对非对象调用成员函数setFileUploadSupport(),php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我正在开发我的第一个facebook应用程序,其中包括创建一个新相册和将照片发布到用户墙上 通过学习facebook文档和一些教程,我得到了这段代码,但我发现了以下错误 致命错误:对非对象调用成员函数setFileUploadSupport()。 $facebook -> setFileUploadSupport(true); $album_details = array('message' => 'Album desc', 'name' =>

我正在开发我的第一个facebook应用程序,其中包括创建一个新相册和将照片发布到用户墙上

通过学习facebook文档和一些教程,我得到了这段代码,但我发现了以下错误

致命错误:对非对象调用成员函数setFileUploadSupport()。

        $facebook -> setFileUploadSupport(true);
        $album_details = array('message' => 'Album desc', 'name' => 'Album name');
        $create_album = $facebook -> api('/me/albums', 'post', $album_details);
        $album_uid = $create_album['id'];

        $photo_details = array('message' => 'Photo message');
        $file = 'app.jpg';
        $photo_details['image'] = '@' . realpath($file);

        $upload_photo = $facebook -> api('/' . $album_uid . '/photos', 'post', $photo_details);

请帮我做这个。谢谢

您是否已将变量($facebook)实例化为对象类

例如:

include('class.Facebook.php');
$facebook = new Facebook();

您是否已将变量($facebook)实例化为对象类

例如:

include('class.Facebook.php');
$facebook = new Facebook();

您需要先创建一个新对象来实例化该类。您还需要传递$config数组-因为构造函数是“缺少1个参数”;这就是你得到的错误

// Create facebook object.
$config = array(
'appId'  => 'app id',
'secret' => 'app secret',
'fileUpload' => true
);

// Initiate the library
$facebook = new Facebook($config);
将“应用程序id”和“应用程序机密”替换为您在创建facebook应用程序时获得的


编辑:在代码中添加了一个小更改。$config接受数组中的第三个可选元素,称为fileUpload(表示是否启用了文件上载的布尔值)。您需要设置它,因为您调用了setFileUploadSupport()方法。或者另一种方法是像您所做的那样编写is,并直接在setFileUploadSupport中传递布尔值(true)。任何一种方法都有效。

您需要先创建一个新对象来实例化该类。您还需要传递$config数组-因为构造函数是“缺少1个参数”;这就是你得到的错误

// Create facebook object.
$config = array(
'appId'  => 'app id',
'secret' => 'app secret',
'fileUpload' => true
);

// Initiate the library
$facebook = new Facebook($config);
将“应用程序id”和“应用程序机密”替换为您在创建facebook应用程序时获得的


编辑:在代码中添加了一个小更改。$config接受数组中的第三个可选元素,称为fileUpload(表示是否启用了文件上载的布尔值)。您需要设置它,因为您调用了setFileUploadSupport()方法。或者另一种方法是像您所做的那样编写is,并直接在setFileUploadSupport中传递布尔值(true)。任何一种方法都有效。

您需要使用文件上载支持实例化该类,并请求正确的权限

$facebook = new Facebook(array(
    'appId'  => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
    'fileUpload' => true // enable file upload support
));

// get a login url with the correct perms
$facebook->getLoginUrl(array(
  'scope' => 'photo_upload,first_name,email,publish_stream,read_stream'
));

照片上传是此处的关键权限,允许您上传照片

您需要使用文件上载支持实例化该类,并请求正确的权限

$facebook = new Facebook(array(
    'appId'  => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
    'fileUpload' => true // enable file upload support
));

// get a login url with the correct perms
$facebook->getLoginUrl(array(
  'scope' => 'photo_upload,first_name,email,publish_stream,read_stream'
));

照片上传是此处的关键权限,允许您上传照片

哦,谢谢你的回复,我刚刚加了它。但现在我得到了一个警告和一个错误<代码>警告:缺少Facebook的参数1::u construct(),在第188行的/home/file.php中调用,在第35行的/home/Facebook.php中定义|
致命错误:未捕获卷曲异常:6:无法解析在第886行的/home/base_Facebook.php中抛出的主机“graph.Facebook.com”
哦,谢谢你的回复,我刚刚添加了它。但现在我得到了一个警告和一个错误<代码>警告:Facebook缺少参数1::u construct(),在第188行的/home/file.php中调用,在第35行的/home/Facebook.php中定义,它当然解决了参数丢失的错误。但是现在我得到了一个新的错误,即:
致命错误:未捕获OAuthException:无效的OAuth访问令牌签名。在1106行的/home/base_facebook.php中抛出
如果这与权限有关,则我的身份验证url包括发布流的权限:
$auth_url=”http://www.facebook.com/dialog/oauth?client_id=" . $应用程序id。“&重定向_uri=”。urlencode($canvas\u页面)。“&scope=first\u name,email,publish\u stream,read\u stream”除了这些,我还需要一些额外的权限吗?存在身份验证问题。尝试SIR在这里的建议:您是否创建了一个用户变量来检查用户当前是否已登录<代码>$user=$facebook->getUser()。如果用户已连接,它将返回用户ID,如果未连接,则返回0。可能是问题my
echo$facebook->getUser()返回“0”,但我已登录到facebook。另外,在我最后一次遇到这个错误:
致命错误:未捕获OAutheException:验证应用程序时出错。在1106行的/home/base_facebook.php中抛出,它当然解决了参数丢失错误。但是现在我得到了一个新的错误,即:
致命错误:未捕获OAuthException:无效的OAuth访问令牌签名。在1106行的/home/base_facebook.php中抛出
如果这与权限有关,则我的身份验证url包括发布流的权限:
$auth_url=”http://www.facebook.com/dialog/oauth?client_id=" . $应用程序id。“&重定向_uri=”。urlencode($canvas\u页面)。“&scope=first\u name,email,publish\u stream,read\u stream”除了这些,我还需要一些额外的权限吗?存在身份验证问题。尝试SIR在这里的建议:您是否创建了一个用户变量来检查用户当前是否已登录<代码>$user=$facebook->getUser()。如果用户已连接,它将返回用户ID,如果未连接,则返回0。可能是问题my
echo$facebook->getUser()返回“0”,但我已登录到facebook。另外,在我最后一次遇到这个错误:
致命错误:未捕获OAutheException:验证应用程序时出错。在1106行的/home/base_facebook.php中抛出