【发布时间】:2015-09-08 09:41:30
【问题描述】:
我正在尝试从我的 javascript 发布到 Fb 页面我收到此错误
(#200) 用户未授权应用执行此操作
“OAuthException”
我可以同时发布到我的 FB 墙上,但不能发布到我作为管理员的 FB 粉丝页面。请指导我出了什么问题。我的代码:
<input type="submit" class="btn"
onclick="postToFeed(); return false;"
value="Share with Friends"/>
<input type="submit" class="btn"
onclick="postToPage(); return false;"
value="Share On Page"/>
<p id='msg'></p>
<script>
FB.init({appId: '{!appId}', status: true, cookie: true});
function postToPage() {
var page_id = '1426984900889247';
FB.api('https://graph.facebook.com/' + page_id, {fields: 'access_token'}, function(resp) {
console.log(resp);
console.log(resp.access_token);
if(resp.access_token) {
FB.api('https://graph.facebook.com/' + page_id + '/feed',
'post',
{ message: "{!posDetails.Name}",
description :'{!posDetails.CMSR__Job_Description__c}',
link : '{!siteUrl}',
picture: '{!posDetails.CMSR__Linked_In_Url__c}',
caption: '{!posDetails.CMSR__Summary__c}',
access_token: resp.access_token }
,function(response) {
console.log(response);
});
}
});
alert(resp);
}
function postToFeed() {
var obj = {
method: 'feed',
link: '{!siteUrl}',
picture: '{!posDetails.CMSR__Linked_In_Url__c}',
name: '{!posDetails.Name}',
caption: '{!posDetails.CMSR__Summary__c}',
description: '{!posDetails.CMSR__Job_Description__c}'
};
function callback(response) {
if (response['post_id']) {
var postId = response['post_id'].split('_')[1];
document.getElementById('msg').innerHTML =
"Posted to your wall. "+
"<a href=\"https://www.facebook.com/permalink.php?"+
"id={!me.id}&v=wall&story_fbid="+postId+"\">View your post</a>";
}
}
FB.ui(obj, callback);
}
</script>
<script>
$( document ).ready(function() {
var nameID;
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.api('/me/accounts', function(response){
console.log(response);
console.log(response.data);
var data= response['data'];
var ids = new Array();
var name = new Array();
console.log('data');
console.log(data);
console.log('ID');
console.log(ids);
for(var i=0; i<data.length; i++){
ids[i] = data[i].id;
name[i] = data[i].name;
if(ids[i] != null){
console.log(ids[i]);
if(nameID == 'undefined'){
nameID = ids[i]+':'+data[i].name+';';
}
else{
nameID = nameID+' '+ids[i]+':'+data[i].name+';';
}
}
}
setVar(nameID);
console.log('method called ');
console.log(ids);
console.log(name);
console.log(nameID);
});
}
else {
FB.login();
FB.api('/me/accounts', function(response){
console.log(response);
});
}
});
function setVar(param){
jQuery('[id$=myHiddenField]').val(param);
console.log('Param value '+param);
passStringToController();
}
});
</script>
【问题讨论】:
-
看起来您正在尝试预填充,这违反了 Facebook 平台政策
标签: javascript facebook