Facebook JS API对不同的appid';s
我正在构建一个web应用程序,我需要将它与facebook连接起来。我的最终目标是把这张照片贴到用户的墙上和相册上,但我遇到了麻烦 当使用我自己的Facebook JS API对不同的appid';s,facebook,facebook-graph-api,facebook-javascript-sdk,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我正在构建一个web应用程序,我需要将它与facebook连接起来。我的最终目标是把这张照片贴到用户的墙上和相册上,但我遇到了麻烦 当使用我自己的应用程序id(我自己的,我的意思是我用我自己的facebook帐户创建了这个“测试”应用程序)时,它工作得非常好——图片发布在用户的墙上和相册上。但当使用客户端app\u id(客户端用自己的帐户创建了这个应用程序,我在这里被列为开发人员)时,它的行为就不同了——用户墙上没有张贴任何图片 我已经检查了设置,它们是一样的。代码,相同。我在facebook
应用程序id
(我自己的,我的意思是我用我自己的facebook帐户创建了这个“测试”应用程序)时,它工作得非常好——图片发布在用户的墙上和相册上。但当使用客户端app\u id
(客户端用自己的帐户创建了这个应用程序,我在这里被列为开发人员)时,它的行为就不同了——用户墙上没有张贴任何图片
我已经检查了设置,它们是一样的。代码,相同。我在facebook上发布图片时得到的回应-不同
下面是我正在使用的代码:
<button>share photo</button>
<div id="fb-root"></div>
<script>
var graph_url = 'https://graph.facebook.com/me/photos?access_token=';
var photo_url = '<?php echo $photo_url; ?>';
var user_id = null;
var access_token = null;
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : '<?php echo $app_id; ?>', // App ID from the app dashboard
channelUrl : '//my-website/channel.php', // Channel file for x-domain comms
status : true, // Check Facebook Login status
xfbml : true // Look for social plugins on the page
});
// Additional initialization code such as adding Event Listeners goes here
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
user_id = response.authResponse.userID;
access_token = response.authResponse.accessToken;
} else if (response.status === 'not_authorized') {
// nothing to do
} else {
FB.login(function(response) {
if (response.authResponse) {
user_id = response.authResponse.userID;
access_token = response.authResponse.accessToken;
}
});
}
});
$('button').on('click', function(ev) {
if (user_id && access_token) {
FB.api('/me/photos', 'post', {
url: photo_url,
message: 'dasdad',
access_token: access_token
}, function(response) {
console.log(response); // <---- this different
});
}
});
};
// Load the SDK asynchronously
(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>
共享照片
var图https://graph.facebook.com/me/photos?access_token=';
var photo_url='';
var user_id=null;
var-access_-token=null;
window.fbAsyninit=函数(){
//初始化FBJSSDK
FB.init({
appId:“”,//应用程序仪表板中的应用程序ID
channelUrl:“//我的网站/channel.php”,//用于x域通信的通道文件
状态:true,//检查Facebook登录状态
xfbml:true//在页面上查找社交插件
});
//附加的初始化代码(如添加事件侦听器)如下所示
FB.getLoginStatus(函数(响应){
如果(response.status===“已连接”){
user_id=response.authResponse.userID;
access_token=response.authResponse.accessToken;
}else if(response.status===“未授权”){
//无事可做
}否则{
FB.登录(功能(响应){
if(response.authResponse){
user_id=response.authResponse.userID;
access_token=response.authResponse.accessToken;
}
});
}
});
$('button')。打开('click',函数(ev){
if(用户标识和访问令牌){
FB.api(“/me/photos”、“post”{
url:photo_url,
消息:“dasdad”,
访问令牌:访问令牌
},功能(回应){
console.log(response);//我没有看到您在登录时请求任何权限,因此我假设您的应用程序可能仍然具有该权限,因为您之前已授予该权限,但另一个应用程序没有该权限
请将两个应用的访问令牌登录到浏览器控制台,然后在此处选中它我没有看到您在登录时请求任何权限–因此我假设您的应用可能仍然具有该权限,因为您之前已授予该权限,但另一个应用没有该权限。请将两个应用的访问令牌登录到浏览器控制台pps,然后在这里检查谢谢!这就是它!你能不能也添加这个作为答案,这样我就可以接受它?