【问题标题】:Upload video to facebook using graph api使用图形 api 将视频上传到 facebook
【发布时间】:2013-07-21 00:07:31
【问题描述】:

我正在使用以下代码将视频上传到用户墙:

if( isset($_POST['submitVideo']) ) {
   $img =  $_FILES['source']['name'];     
   $ret_obj = $facebook->api('/me/videos', 'POST', array(
      'source' => '@' . $img,
      'title' => "This is just a test",
      'description' => 'test9000',
      'privacy' => json_encode(array( 'value' => 'EVERYONE' )),
      )
   );
   echo '<pre>Video ID: ' . $ret_obj['id'] . '</pre>';
}

表单如下所示:

<form target="uploadTarget" enctype="multipart/form-data" method="POST">
   <input name="source" type="file">
   <input type="submit" value="Upload" name="submitVideo" />
</form>

我的问题是图像的来源。使用这个是否正确:

$img =  $_FILES['source']['name'];

来源应该是什么?我正在从本地计算机上传文件。
已编辑:
如果我对相同的表单使用以下模式并使用此“$post_url”作为操作怎么办:

$post_url = "https://graph-video.facebook.com/me/videos?"
        . "title=" . $video_title. "&description=" . $video_desc
        . "&access_token=". $access_token;

它有效。但转到此“$post_url”页面,其中显示上传文件的 ID。如何使用该 ID 将其放入我的数据库?

【问题讨论】:

    标签: facebook facebook-graph-api facebook-php-sdk facebook-apps


    【解决方案1】:

    这样用对吗:

    $img =  $_FILES['source']['name'];
    

    不,正如http://www.php.net/manual/en/features.file-upload.post-method.php 告诉你的那样,这是“客户端计算机上文件的原始名称。”——这当然不是你想要的。

    您想使用在客户端上传到服务器后临时存储在服务器上的文件的名称:

    $_FILES['userfile']['tmp_name']

    上传文件存储在服务器上的文件的临时文件名。


    如果这不起作用(cURL [PHP SDK 内部使用的] 可能无法直接访问文件上传的临时目录),您必须首先使用move_uploaded_file 将文件存储在另一个位置在您的服务器上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多