我正在使用Cordova facebook插件以管理員身份登錄Facebook頁面。以管理員身份登錄Facebook頁面
我擁有需要在Facebook頁面上發佈的所有權限。以下是我有權限的列表:
email, manage_pages, public_profile, publish_actions, publish_pages
我試圖使用後我的應用程序頁面,但每次它與用戶令牌,不與頁面令牌發佈。
代碼我想:
//,帶出的網頁的用戶的列表管理用戶的網頁
$$('#apiTest_fb_pages').on('click', function() {
facebookConnectPlugin.api("me/accounts", ["manage_pages"],
function (response) {
console.log(JSON.stringify(response.data[0].name))
//console.log(JSON.stringify(response));
//fb_pages(response);
var select = document.getElementById("selectPage");
for (var i = 0; i < response.data.length; i++) {
var opt = response.data[i].name;
var page_val = response.data[i].id;
var el = document.createElement("option");
el.textContent = opt;
el.value = page_val;
select.appendChild(el);
}
},
function (response)
{
console.log(JSON.stringify(response.data.name))
});
});
//在選擇合格的
$$('#apiTest_fb').on('click', function() {
facebookConnectPlugin.api("me/accounts", ["manage_pages"],
function (response) {
console.log(JSON.stringify(response.data[0].name))
//alert(JSON.stringify(response));
//fb_pages(response);
alert("Manage Pages Permission granted");
},
function (response)
{
console.log(JSON.stringify(response))
});
});
//動態下拉獲得頁面的access_token
$$('#selectPage').on("change", function(){
var selectPage_id = $$(this).val();
console.log(selectPage_id);
window.localStorage.setItem("selectPage_id",selectPage_id);
});
$$('#FBActionPage').on('click', function() {
facebookConnectPlugin.api(window.localStorage.getItem("selectPage_id") + "?fields=access_token", ['publish_pages', 'manage_pages'],
function (response) {
var pageToken = JSON.stringify(response.access_token);
//window.localStorage.setItem("fbtokenPage",JSON.stringify(response.access_token));
post_fbPage(pageToken);
},
function (response)
{
console.log(JSON.stringify(response))
});
});
//發佈到臉書
function post_fbPage(pageToken){
console.log(pageToken);
facebookConnectPlugin.getLoginStatus(function(response) {
var url = '/'+ window.localStorage.getItem("selectPage_id") +'/feed?method=post&message=' + encodeURIComponent('Test') + '&link=' + 'impalz.co/JMR3a' + '&picture=' + 'www.impalz.com/images/affiliate-1.jpg' + '&caption=' + 'New Product' + '&description=' + 'we would love to know your feedback' +'&access_token=' + pageToken;
facebookConnectPlugin.api(
url,
['publish_pages', 'manage_pages'],
function (response) { console.log(response.id)},
function (error) { console.error(error); }
);
});
};
這是怎麼交的樣子:
如何使用我的應用我分享信息的管理?
編輯1:
我試圖消除publish_actions
和刪除,並從用戶選項卡中添加應用程序,同時網頁上發佈,它仍然與發佈用戶令牌。我調試我和的access_token以下內容我:
編輯2:
我想通過我的令牌facebook PHP SDK和其張貼在牆上完美。我如何使用PHP SDK在Facebook頁面上發佈?
我已經嘗試通過page_token
和page_id
使用PHP SDK在FB頁上發佈,但它不起作用。我試圖張貼在用戶的Facebook牆上
代碼:
require_once('src/Facebook/autoload.php');
$token = $_POST["token"]; // Used AJAX to post data on server
$fb = new Facebook\Facebook([
'app_id' => '{ID}',
'app_secret' => '{SECRET}',
'default_graph_version' => 'v2.2',
'default_access_token' => $token,
]);
$linkData = [
'link' => 'http://www.example.com',
'message' => 'User provided message',
];
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post('/me/feed', $linkData, $token);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
echo 'Posted with id: ' . $graphNode['id'];
爲什麼不只是刪除publish_actions?不確定爲什麼要添加它,您只需要publish_pages作爲頁面發佈。會使調試更容易。 – luschn
我試着刪除'publish_actions'。但是,即使我在發佈時傳遞了「page_token」,它仍然會使用'user_token'。 –
刪除您的Facebook設置中的應用程序,然後重試。我相信publish_actions仍然被批准。我相信你使用的是用戶令牌,我猜測sdk只是添加了用戶令牌並且忽略了你自己的令牌參數。 – luschn