我想知道是否有人可以帮助我。
我正在尝试使用PHP SDK发布操作,但它似乎在请求发出后没有返回对象,也没有使用操作更新用户配置文件的activity部分。我在JS中工作得很好,但似乎无法将其移至php。
// include the FB SDK
require_once(APPLICATION_PATH . '/../library/facebook/facebook.php');
// create the application instance
$facebook = new Facebook(array(
'appId' => $this->facebookConfig->appid,
'secret' => $this->facebookConfig->appsecret,
'cookie' => true
));
// get the user id
$user = $facebook->getUser();
if(!empty($user)) {
// We have a user ID, so probably a logged in user.
// If not, we'll get an exception, which we handle below.
try {
// post og actions
if(!empty($this->thanksData->ogobject) && !empty($this->thanksData->ogaction)){
$method = '/me/' . $this->appData->namespace . ':' . $this->thanksData->ogaction;
$params = array(
$this->thanksData->ogobject => 'http://mydomain.com/thanks',
//'access_token' => $this->fbAuthToken
);
$ret_obj = $facebook->api($method, 'POST', $params);
}
// wall post
if(!empty($this->facebookConfig->wallmsg))
$this->wallPost($facebook);
} catch(FacebookApiException $e) {
// If the user is logged out, you can have a
// user ID even though the access token is invalid.
// In this case, we'll get an exception, so we'll
// just ask the user to login again here.
$params = array(
'scope' => $this->permissions,
'redirect_uri' => $this->facebookConfig->applink
);
$loginUrl = $facebook->getLoginUrl($params);
// log errors
error_log($e->getType());
error_log($e->getMessage());
// redirect if not logged in or not enough permissions
//echo "<script>top.location=\"".$loginUrl."\";</script>";die;
}
// Give the user a logout link
//echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
}
JS中的相同示例 在删除它之前,此代码正在运行,支持在PHP中执行任务
// initialise facebook
window.fbAsyncInit = function() {
// get the data
var data = $('body').data();
FB.init({
appId : data.appid, // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true // oauth stuff
});
// enable actions on page visit
if(data.object.length > 0 && data.action.length > 0){
// check if we have permissions
FB.login(function(loginResponse){
FB.api('me/permissions','get',function(response){
// get the data
var data = $('body').data();
if(data.ogactions == 1){
var params = {};
params[data.object] = data.url;
// post that we read the article
FB.api(
'/me/'+ data.appnamespace + ':' + data.action,
'post',
params,
function(response) {
if (!response || response.error) {
console.log(response);
} else {
console.log('Action successful! Action ID: ' + response.id);
}
});
}
});
}, {scope: 'publish_actions,publish_stream'});
}
}
答案 0 :(得分:1)
这是一个相当愚蠢的错误,我脑中的og元字段名称=“”而不是property =“”,这是我没有注意到的。