视频的图谱API帖子无法播放

时间:2013-01-30 20:24:39

标签: facebook-graph-api video

我有一个应用程序可以将YouTube上的音乐视频发布到Facebook用户的墙上。 Facebook上的帖子可以让这个嵌入式视频可以在Facebook上播放。最近它停止了发生。

经过一些测试后,似乎当一个人发布图片API帖子,其中来源是YouTube视频时,该链接还需要域中的youtube.com才能在Facebook上下文中播放。

重复:

您可以通过登录Facebook并访问此处来查看自己:

https://developers.facebook.com/tools/explorer

然后获取具有read_streampublish_stream权限的访问令牌(扩展权限标签)。

GET切换到POST并使用以下字段将端点设置为/ me / feed:

message = message
description = description
name = name
caption = caption
link = http://www.youtube.com/watch?v=r1dfEf1qOt4
source = http://www.youtube.com/e/r1dfEf1qOt4
picture = http://img.youtube.com/vi/r1dfEf1qOt4/0.jpg

它应该出现在你的Facebook墙上并且可以播放。

现在再次执行此操作,但将链接更改为http://www.google.com。 它不再可玩了。

任何人都可以确认这是否是预期的行为?我在Facebook文档中找不到任何内容。也许我只是错过了什么?

2 个答案:

答案 0 :(得分:4)

广义解决方法

I generalized the answer对此类似问题:posting a swf in facebook feed through facebook api。我创建了一个页面,它接受两个参数并生成必要的meta标记。 Facebook接受该链接,用户被正确重定向,并且您不需要为每个发布的视频单独的页面。

  1. url - 最终网址
  2. id - youtube或嵌入视频的ID
  3. 我成功制作了许多嵌入式帖子,其中的链接与视频无关。

    示例帖子

    message = Post message
    description = Post description if needed.
    name = Post name
    caption = Post caption
    link = http://vbcopper.com/jsuar/so/fbembedvideo.php?url=stackoverflow.com&id=QGAJokcwBXI
    source = http://www.youtube.com/e/QGAJokcwBXI
    picture = http://img.youtube.com/vi/QGAJokcwBXI/0.jpg
    

    PHP

    <?php
     $id =  $_GET["id"];
     $url =  $_GET["url"];
    
     if ( isset($url) ) {
    echo <<< EOT
    <html>
    <head>
        <title>$url</title>
        <meta property="og:title" content="Page Title" />
        <meta property="og:type" content="website"/>
        <meta property="og:description" content="Content for Description" />
        <meta property="og:image" content="http://i2.ytimg.com/vi/$id/mqdefault.jpg" />
        <meta property="og:site_name" content="Content for caption"/>
        <meta property="og:video" content="http://www.youtube.com/v/$id?version=3&autohide=1">
        <meta property="og:video:type" content="application/x-shockwave-flash">
        <meta property="og:video:width" content="640">
        <meta property="og:video:height" content="360">
        <META http-equiv="refresh" content="1;URL=http://$url">
    
    </head>
    <body>
    </body>
    </html>
    EOT;
    } else {
        echo "Nothing here...";
    }
    ?>
    

    调查结果

    我能够成功复制您的问题。 我找不到任何解决方法。

    这已经作为一个错误提交给Facebook,但被视为低优先级。

      

    错误:发布带有链接属性的视频不会嵌入源   https://developers.facebook.com/bugs/502967809730190?browse=search_5074a2e48fd360934230075

答案 1 :(得分:0)

通常要将YouTube视频分享到Facebook页面,您只需要消息,链接,来源, 图片参数。如果您愿意,甚至还可以跳过源,图片参数。多数民众赞成是如果你使用FacebookC#SDK将视频分享给Facebook所有你需要的是代码

 var fb = new Facebook.FacebookClient(yourPageAccessToken); 
 argList["message"] = message;
 argList["link"] = "http://www.youtube.com/watch?v=" + specialOffer.YoutubeId;
 argList["source"] = "http://www.youtube.com/v/" + specialOffer.YoutubeId;
 argList["picture"] = "http://img.youtube.com/vi/" + specialOffer.YoutubeId + "/0.jpg";
 fb.Post("feed", argList);

 var fb = new Facebook.FacebookClient(yourPageAccessToken); 
 argList["message"] = message;
 argList["link"] = "http://www.youtube.com/watch?v=" + specialOffer.YoutubeId;
 fb.Post("feed", argList);