我有一个应用程序可以将YouTube上的音乐视频发布到Facebook用户的墙上。 Facebook上的帖子可以让这个嵌入式视频可以在Facebook上播放。最近它停止了发生。
经过一些测试后,似乎当一个人发布图片API帖子,其中来源是YouTube视频时,该链接还需要域中的youtube.com
才能在Facebook上下文中播放。
重复:
您可以通过登录Facebook并访问此处来查看自己:
https://developers.facebook.com/tools/explorer
然后获取具有read_stream
和publish_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文档中找不到任何内容。也许我只是错过了什么?
答案 0 :(得分:4)
I generalized the answer对此类似问题:posting a swf in facebook feed through facebook api。我创建了一个页面,它接受两个参数并生成必要的meta
标记。 Facebook接受该链接,用户被正确重定向,并且您不需要为每个发布的视频单独的页面。
url
- 最终网址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
$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);