我曾经能够,但由于某种原因,我使用FB.ui()的所有Facebook Javascript API调用不再适用于我的url为localhost:8080的开发环境.在生产中它工作正常.我有一个开发环境Facebook应用程序,但我只是在其中更改URL.我认为这就是问题所在.我如何拥有允许来自开发和生产环境的FB.ui()调用的Facebook应用程序?这是我在dev中调用FB.UI()时得到的错误:
An error occurred with AppleTree dev. Please try again later.
API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: redirect_uri is not owned by the application.
Run Code Online (Sandbox Code Playgroud) 现在我正在使用JavaScript SDK实现Facebook功能.我一直在使用"FB.ui({method:'pay',....},callback)",现在它运行正常.
当我使用这个FB.ui函数和方法:'pay'在iPhone或Android等移动网站上时,它会尝试打开另一个支付对话框的弹出窗口.
但是大家都知道,默认情况下iPhone或Android浏览器阻止弹出窗口,所以如果我们想要使用这个FB.ui付费方法,我们必须在设置中关闭弹出窗口.
有没有办法不打开付款对话框的另一个弹出窗口?
我正在从这种登录按钮转换过来
<fb:login-button perms="publish_stream,read_stream,friends_location,email" onlogin="facebookLoginCallback();" size="large">
<g:message code="Connect with Facebook"/>
</fb:login-button>
至
<div class="fb-login-button"
data-show-faces="false" data-width="200"
data-max-rows="1"
data-onlogin="facebookLoginCallback();">Connect with Facebook</div>
但是data-onlogin实际上并不会导致调用facebookLoginCallback().这似乎没有很好地记录.data-onlogin没有记录,只是我对翻译的最佳猜测.属性应该被称为其他东西.它似乎没有转化为这种新推荐的风格.登录工作 - 只是没有回调.第一个例子的回调确实有效.
我正在尝试将javascript SDK(来自http://connect.facebook.com/en_US/all.js的all.js文件)动态地包含在我的网络应用程序的javascript中.我使用了以下代码.
$.getScript('http://connect.facebook.com/en_US/all.js', function() {
alert('Facebook script has loaded');
});
Run Code Online (Sandbox Code Playgroud)
执行此操作时,目前我发现页面从不发出警报.我的主要目的是以编程方式加载Facebook JS SDK.如果我正在做的事情有什么问题,或者有任何其他方法可以实现,请告诉我.
我有一个Feed帖子如下.
var feedObj = {
method: 'feed',
link: link,
picture: imagelink,
name: name,
caption: caption,
description: description,
redirect_uri: "http://"+(window.location.host)+"/",
next:null,
app_id: appid,
actions: [
{ name: text, link: link }
]
};
function callback(response) {
if(response){
}
}
facebook.ui(feedObj, callback);
Run Code Online (Sandbox Code Playgroud)
如何确保点击发布的订阅源对话框自动关闭?
我注意到回调并不总是被触发,下面的这个尝试总是不起作用
function callback(response) {
if(response){
facebook.Dialog.remove(facebook.Dialog._active);
}
}
Run Code Online (Sandbox Code Playgroud) 以下是我如何将Facebook Feed Dialog实现到我的页面:
HTML标记:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://opengraphprotocol.org/schema/">
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=***************";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
FB.init({
appId: '***************',
display: 'popup',
status: true,
cookie: true,
xfbml: true,
oauth: true,
method: 'send'
});
Run Code Online (Sandbox Code Playgroud)
发送按钮:
<a onclick="javascript:twitter(this); return false;" href="https://www.facebook.com/dialog/feed?display=popup&app_id=***************&name=<name>&link=<link>&redirect_uri=<uri>">
<div class="fb-container"></div>
</a>
Run Code Online (Sandbox Code Playgroud)
在这里我使用Twitter的弹出脚本因为display:popup不起作用,不知道为什么.
然而,弹出窗口出现,我发送了Feed.但后来我被重定向到redirect_uri.我不想要这个.我只想在单击"发送"或"取消"按钮后关闭弹出窗口.我做了类似于检测按钮是否被点击然后尝试window.close;但没有成功的事情,因为它是一个新窗口(弹出窗口).
有任何想法吗?
发出请求朋友姓名,身份和位置的api电话,
FB.api('/me/friends', {fields: 'name,id,location'}, function(response) {
//...
});
Run Code Online (Sandbox Code Playgroud)
返回位置(id和name)的两个参数."name"参数指定朋友位置,但"id"参数的重要性是什么?
如果该参数非常重要,那么它如何对Facebook应用程序开发人员有用?
我一直在寻找这个问题的答案.
提前致谢.
我们的网站使用Facebook登录和正常登录.
Facebook在我们大学的网络上被禁止.当我试图在学校进入我们的网站时,它没有加载.在Chrome的网络标签中,它表示"待处理......".
评论后编辑:
所以我浏览了这里找到的facebook文档,但我的分享按钮仍未显示.
我在_layout.cshtml页面的body标签下面直接添加了这个:
<div id="fb-root"></div>
script
window.fbAsyncInit = function () {
FB.init({
appId: 'xxxxxxxxxxxxxxxx',
status: true,
xfbml: true
});
};
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) { return; }
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
script
Run Code Online (Sandbox Code Playgroud)
(我删除了小于/大于脚本标签周围的内容,以便让代码块显示在SO上)
我将其添加到我的主页以进行测试:
<div class="fb-share-button" data-href="http://myurl.com" data-width="50px" data-type="button_count">Share</div>
Run Code Online (Sandbox Code Playgroud)
我必须在div元素的文本中添加"看""共享"文本.
我哪里错了?我想添加facebook小部件的东西会提供facebook图像/图标和分享计数,我错了吗?
javascript html5 facebook facebook-javascript-sdk asp.net-mvc-4
我们使用Facebook Graph API v2.9来运行"feed balancing"应用程序:喜欢你讨厌的内容
该应用程序运行从NodeJs服务器提供的React.
几个月前(2017年12月),我们做了一些更新,但我们最近发现该应用程序已停止运行,该应用程序正常运行.
经过调查,我发现当我点击以下终点时:
/me/picture?height=80&width=80
/me/picture
/{a-defined-user-id}/picture
Run Code Online (Sandbox Code Playgroud)
graph api在响应中返回以下错误:
{
"error": {
"code": 1,
"error_subcode": 1357046,
"message": "Received Invalid JSON reply.",
"type": "http"
}
}
Run Code Online (Sandbox Code Playgroud)
其他端点,例如:
/me
/me/likes
/me/likes?limit=1000
Run Code Online (Sandbox Code Playgroud)
按预期返回JSON对象.
我已经使用Graph API Explorer来命中/me/picture端点,我得到了一个看似有效的JSON响应.
所以它似乎与SDK代码有关.我们正在使用Javascript SDK并将其安装在我们的应用程序中:
window.fbAsyncInit = function() {
window.FB.init({
appId : fbAppId,
xfbml : true,
version : 'v2.9',
cookie : true
});
window.FB.AppEvents.logPageView();
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); …Run Code Online (Sandbox Code Playgroud)