【问题标题】:Upload Photo To Album with Facebook's Graph API使用 Facebook 的 Graph API 将照片上传到相册
【发布时间】:2010-04-27 03:55:32
【问题描述】:

我正在尝试熟悉 Facebook 的新 Graph API,到目前为止,我可以很容易地获取和写入一些数据。

我正在努力寻找合适的文档,即将图片上传到相册。

根据http://developers.facebook.com/docs/api#publishing,您需要提供 message 参数。但我不太确定如何构建它。

我读过的旧资源是:

如果有人有更多信息或可以帮助我解决使用 Facebook Graph API 将照片上传到相册的问题,请回复!

【问题讨论】:

    标签: php facebook


    【解决方案1】:

    这里有一些使用 PHP Facebook Graph API 上传照片的不同方法。这些示例假设您已经实例化了 $facebook 对象并拥有一个有效的会话。

    1 - 上传到当前用户的默认应用相册

    本示例将照片上传到您当前用户的默认应用相册。如果相册尚不存在,则会创建它。

    $facebook->setFileUploadSupport(true);
    $args = array('message' => 'Photo Caption');
    $args['image'] = '@' . realpath($FILE_PATH);
    
    $data = $facebook->api('/me/photos', 'post', $args);
    print_r($data);
    

    2 - 上传到目标相册

    此示例会将照片上传到特定相册。

    $facebook->setFileUploadSupport(true);
    $args = array('message' => 'Photo Caption');
    $args['image'] = '@' . realpath($FILE_PATH);
    
    $data = $facebook->api('/'. $ALBUM_ID . '/photos', 'post', $args);
    print_r($data);
    

    【讨论】:

    • 别忘了加上:$facebook->setFileUploadSupport(true);
    • @Abe 没错,你也可以在 Facebook 构造函数中指定:$facebook = new Facebook(array( 'appId' => 'ID', 'secret' => 'SECRET' , 'fileUpload' => true, 'cookie' => true));
    • 相册ID可以不是我的相册,而是朋友的或者页面的相册吗?
    • 有什么方法可以发送image/resource handle而不是realpath
    【解决方案2】:

    这是对我有用的代码:

    //upload photo
    $file= '/path/filename.jpg';
    $args = array(
       'message' => 'Photo from application',
    );
    $args[basename($file)] = '@' . realpath($file);
    $ch = curl_init();
    $url = 'http://graph.facebook.com/'.$album_id.'/photos?access_token='.$access_token;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
    $data = curl_exec($ch);
    //returns the photo id
    print_r(json_decode($data,true));
    

    文档链接:http://developers.facebook.com/docs/reference/api/photo

    【讨论】:

    • 你怎么知道的?来自 Facebook.com 的任何文档?
    • 我也想知道你在哪里找到的!除非你自己推出?
    • 这仍然对您有用吗?最近FB平台上传照片好像有问题
    • 关于从 javascript sdk 上传照片的任何想法。
    【解决方案3】:

    您必须做一些事情才能使图形 api 与 php 一起使用。此代码有效。注意 fileUpload => true...

    我也无法让它与 javascript 一起使用,所以我正在为此做 ajax:

    require './facebook.php';

    $facebook = new Facebook(array(  
      'appId'  => 'ID',  
      'secret' => 'SECRET',  
      'fileUpload' => true,  
      'cookie' => true // enable optional cookie support  
    ));  
    
    
    $facebook->setFileUploadSupport(true);  
    
    # File is relative to the PHP doc  
    $file = "@".realpath("../../_images/stuff/greatness.jpg");  
    
    $args = array(  
        'message' => 'Photo Caption',  
        "access_token" => "urtoken",  
        "image" => $file  
    );  
    
    
    $data = $facebook->api('/ALBUMID_GOES_HERE/photos', 'post', $args);
    if ($data) print_r("success");
    

    【讨论】:

    • 谢谢 - 这就是我在 PHP SDK 中忘记设置 setFileUploadSupport 为 true 的原因!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多