4

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

经过一些测试,似乎当一个人使用源是 YouTube 视频发布图形 API 时,链接也需要youtube.com在域中才能在 Facebook 上下文中播放。

重复:

您可以登录 Facebook 并前往此处查看:

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

read_stream然后获取具有权限的访问令牌publish_stream(扩展权限选项卡)。

使用以下字段切换GETPOST并将端点设置为 /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 文档中找不到任何内容。也许我只是错过了什么?

4

2 回答 2

4

通用解决方法

我概括了这个类似问题的答案:通过 facebook api 在 facebook 提要中发布 swf。我创建了一个带有两个参数并生成必要meta标签的页面。Facebook 接受链接,用户被正确重定向,并且您不需要为每个发布的视频单独的页面。

  1. url- 最终网址
  2. id- youtube 或嵌入视频的 id

我成功地制作了许多嵌入帖子,其中链接与视频无关。

示例帖子

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

于 2013-02-07T21:12:10.883 回答
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);
于 2014-09-17T05:30:59.240 回答