我正在使用 Facebook Marketing API 上传离线转化数据。
附加的代码一直工作到大约 2 周前,现在报告以下错误。
{"error":{"message":"(#100) 需要参数数据","type":"OAuthException","code":100,"fbtrace_id":"HkpzkWB1I5g"}}
我不明白为什么它应该在按预期工作这么长时间后停止工作。我不知道如何修复它。有任何想法吗?
$data=array();
$data["match_keys"]["email"]=$emails;
$data["match_keys"]["phone"]=$mobiles;
$data["match_keys"]["fn"]=hash("sha256",$first_name);
$data["match_keys"]["ln"]=hash("sha256",$last_name);
$data["match_keys"]["ln"]=hash("sha256",$last_name);
$data["match_keys"]["ct"]=hash("sha256",$suburb);
$data["match_keys"]["zip"]=hash("sha256",$postcode);
$data["match_keys"]["country"]=hash("sha256","Australia");
$data["event_time"] = strtotime($order_date);
$data["event_name"] = "Purchase";
$data["currency"] = "AUD";
$data["value"] = $order_total;
$data['order_id']=$order_id;
$access_token = '<access_token_0>';
// PURCHASE DATA
$data_json = json_encode(array($data));
$fields = array();
$fields['access_token'] = $access_token;
$fields['upload_tag'] = uniqid() // You should set a tag here (feel free to adjust)
$fields['data'] = $data_json;
$ch = curl_init();
curl_setopt_array($ch, array(
// Replace with your offline_event_set_id
CURLOPT_URL => "https://graph.facebook.com/v2.12/1696501357346693/events",
CURLOPT_RETURNTRANSFER => …Run Code Online (Sandbox Code Playgroud)facebook facebook-graph-api facebook-javascript-sdk facebook-php-sdk
如您所知,Facebook 于 2018 年 7 月 26 日推出了新的 Graph API v3.1,这为开发人员改变了很多事情。我现在的问题之一是如何使用 Facebook Graph API v3.1 PHP SDK 在 Facebook 个人资料/页面时间轴上共享/发布?
提醒:Graph API v2.7 将于 2018 年 10 月 5 日弃用。请使用API 升级工具了解这可能会对您的应用产生什么影响。有关更多详细信息,请参阅变更日志
为此,我创建了一个新的应用程序,其中包含一些设置,如下面的屏幕截图所示。
为此,我使用了下面提到的代码以及facebook-php-graph-sdk-5.x。
<?php
if(!session_id()){
session_start();
}
// Include the autoloader provided in the SDK
require_once __DIR__ . '/facebook-php-graph-sdk-5.x/autoload.php';
// Include required libraries
use Facebook\Facebook;
use Facebook\Exceptions\FacebookResponseException;
use Facebook\Exceptions\FacebookSDKException;
/*
* Configuration and setup Facebook SDK
*/
$appId = 'APP_ID'; //Facebook App ID
$appSecret …Run Code Online (Sandbox Code Playgroud) 我正在使用PHP和Facebook SDK构建iframe应用程序.在第一页上有一个"下载"按钮,链接到第二页.在第二页,我使用以下代码:
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request["page"]["id"];
$page_admin = $signed_request["page"]["admin"];
$like_status = $signed_request["page"]["liked"];
if ($like_status) {
include('download.php');
}
else {
include('non-fan.php');
}
Run Code Online (Sandbox Code Playgroud)
我想仅为喜欢我们Facebook页面的人提供下载.由于某种原因,$ signed_request变量为空.我怎么解决这个问题?
我想使用我已生成的访问令牌获取用户配置文件,如果访问令牌无效,则显示错误.有人可以帮忙吗?我想要PHP代码来处理这个问题.我在等....
php facebook facebook-graph-api facebook-php-sdk facebook-access-token
我正在尝试将我的应用程序转换为最新版本的Facebook PHP SDK(V4).我有三个问题:第一个问题是每次调用(使用我的代码)都需要经历getLoginUrl()函数.这对我来说似乎很奇怪,因为会话的重点是不必为每次调用生成新代码,对吗?其次,我正在试图弄清楚如何访问数据 - 现在所有内容都包含在["backingData":protected]节点中...当我尝试访问时...给我一个致命错误:
Cannot access protected property Facebook\GraphObject::$backingData
Run Code Online (Sandbox Code Playgroud)
最后,我假设我收到此错误,因为我没有请求正确的权限.正如您将在我的代码中看到的那样,我使用之前的'scope'数组语法作为getLoginUrl()函数中的参数...但它永远不会弹出并要求我接受权限.
这是我的代码:
require_once( 'fb2/FacebookSession.php' );
require_once( 'fb2/FacebookRedirectLoginHelper.php' );
require_once( 'fb2/FacebookRequest.php' );
require_once( 'fb2/FacebookResponse.php' );
require_once( 'fb2/FacebookSDKException.php' );
require_once( 'fb2/FacebookRequestException.php' );
require_once( 'fb2/FacebookAuthorizationException.php' );
require_once( 'fb2/GraphObject.php' );
require_once( 'fb2/FacebookOtherException.php' );
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\FacebookOtherException;
session_start();
FacebookSession::setDefaultApplication('522464134491111', '<removed>');
$helper = new FacebookRedirectLoginHelper('https://mediaalias.com/fb_apps/graph_search_2.php/');
try {
$session = $helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
} catch(\Exception $ex) {
}
if ( …Run Code Online (Sandbox Code Playgroud) 例如一个请求
$request = new FacebookRequest($session, 'GET','/me/accounts?fields=id,name,access_token');
$response = $request->execute();
$arrayResult = $response->getGraphObject()->asArray();
print_r($arrayResult);
Run Code Online (Sandbox Code Playgroud)
回报
Array (
[data] => Array (
[0] => stdClass Object (
[id] => 01010011100001111000111 #it's a fake id
[name] => MyAwesomePageName #And a fake name
)
)
[paging] => stdClass Object (
[next] => https://graph.facebook.com/v2.0/01010011100001111000111/accounts?fields=id,name&access_token=RanDoMAndFaaKKeEACCessToKen&limit=5000&offset=5000&__after_id=enc_IdOnOTKnoWWhAtThiSIs
)
)
Run Code Online (Sandbox Code Playgroud)
那是.我想检索数组中的所有响应,没有这些stdClass对象.就像它在api的上一个版本中一样.谢谢.
我正在尝试使用Facebook lib v4创建一个简单的Facebook登录.
我正在关注Facebook指南而且我一直在begning,CakePHP没有找到FacebookSession类,请按照下面的事实:
FacebookSession类路径:
App/Lib/Facebook/src/Facebook
Run Code Online (Sandbox Code Playgroud)
在控制器中使用:
app::uses('FacebookSession', 'Facebook/src/Facebook');
Run Code Online (Sandbox Code Playgroud)
我认为问题出现在这个特定的Facebook Lib中,因为我正在使用WideImage类,并且我正在应用相同的逻辑来使用Class并且工作正常.
为了记录,我使用的是PHP 5.4
在用户注册后,我获取用户数据(姓名,生日,位置等)以及用户个人资料图像.
目前,我能做到这一点:/me?fields=picture,name,但返回的画面分辨率太低,所以我想取得与高度参数图片(如描述在这里).
我认为唯一的选择就是将它分成两个请求,这似乎效率低下:
me/?fields=nameme/picture?height=500&redirect=false有没有办法将其合并为一个请求?
我正在测试facebook php sdk.我拥有'user_birthday,email'和默认用户个人资料的权限.这是代码.
<?php
if(isset($session)) {
try {
$user_profile = (new FacebookRequest(
$session, 'GET', '/me/'
))->execute()->getGraphObject(GraphUser::className());
var_dump ($user_profile);
echo $user_profile->getEmail();
$_SESSION['user']=$user_profile->getName();
$_SESSION['user_id']=$user_profile->getId();
$_SESSION['profile_pic']="http://graph.facebook.com/".$_SESSION['user_id']."/picture";
$_SESSION['gender']=$user_profile->getGender();
$vars = get_object_vars ( $user_profile->getBirthday() );
print_r ( $vars );
} catch(FacebookRequestException $e) {
echo "Exception occured, code: " . $e->getCode();
echo " with message: " . $e->getMessage();
}
}
?>
Run Code Online (Sandbox Code Playgroud)
输出是
object(Facebook\GraphUser)[6]
protected 'backingData' =>
array (size=12)
'id' => string 'xxxxxxxxxxx' (length=15)
'birthday' => string '01/12/1990' (length=10)
'email' => string 'xxxxx@gmail.com' (length=19)
'first_name' => string …Run Code Online (Sandbox Code Playgroud) 我是PHP和Facebook PHP SDK的新手,我希望'like_count'从'likes' 'summary'Facebook页面帖子中获取.我当前的代码包含以下内容:
$response = $fb->get('/me/posts?fields=admin_creator,likes.limit(0).summary(true)&limit=30');
$getLikeCount = $response->getGraphEdge()->asArray();
foreach($getLikeCount as $likekey){
if(isset($likekey['likes'])){
var_export($likekey['likes']);
foreach ($likekey['likes'] as $likekey){
//echo $likekey['total_count'] . '<br>';
}
}
}
Run Code Online (Sandbox Code Playgroud)
该var_export($likekey['likes']);出口空白阵列,同时var_export($likekey['summary']);返回null.但是,在Graph API Explorer中,它返回以下内容:
{
"admin_creator": {
"name": "NAME",
"id": "ID"
},
"id": "ID",
"likes": {
"data": [
],
"summary": {
"total_count": 1022,
"can_like": true,
"has_liked": false
}
}
},
Run Code Online (Sandbox Code Playgroud)
我如何访问该'total_count'字段,因为通过我的方法访问它'likes'并且" summary'不工作".
编辑:使用getGraphEdge()->asArray();将无法工作,因为它不返回摘要数组.我会以某种方式获取值getDecodedBody();或其他方法.如果我使用$getLikeCount = $response->getDecodedBody();,使用此代码: …