PHP SDK VER:facebook-php-sdk-v3.1.1-5-gf2a8588
test users overview:
test users 除了可以大量建立測試帳號之外,其保密的功能簡直到家!
所建立的test users,除了所在的group之外,無法存取其他app或user
當然別人也連不到該test user。這在開發app時,可以防止開發資料外洩!!
而且也不用像以前那樣大量註冊facebook,來提供測試帳號;
更麻煩的是當新開一個專案,還要一個一個測試帳號加進test user list,並且等待對方接受邀請~
這些問題 通通不會再有了
有了add test users這項功能,往後你只要在一個app裡開完所有的test user,並且把這些帳密
發送出去就可以使用了;當有新專案產生時,也可以將test users 全部掛到新專案底下。
在facebook developers頁面底下,只要是該app的developer就可以新增test users
在facebook的介面下,可以一次增加十個,上限為500個
但使用facebook介面新增的話,目前有一個問題,就是得不到該帳號的password!
這會導致無法直接用test user的ac/pw登入此test user
參考官方文件,直接使用api建立,雖然一個request只能增加一個user
不過名稱可以馬上設定(也會將該名稱加入帳號裡),在加入成功之後 還會回傳該用戶的password
以下是sample
require 'src/facebook.php';
$app_id="APPID";
$secret="APPSECRET";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $secret,
));
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
$access_token=getaccessToken($app_id,$secret);
echo "accesstoken:".$access_token;
echo "
";
//create test user
$newTestUser=createTestUser($facebook,$app_id,$access_token,"newtestuser");
print_r($newTestUser);
echo "
";
//get testusers list
$testusers=getAllTestUsers($app_id,$access_token);
print_r($testusers);
echo "
";
print_r($testusers[0]);
echo makingFriendConnections($testusers[0],$testusers[1]);
echo "
";
echo makingFriendConnections($testusers[1],$testusers[0]);
/**
* @desc create a test user
* @param Lib $facebook
* @param STRING $app_id
* @param STRING $access_token
* @param STRING $name //no 0~9
* @return Object user
*/
function createTestUser($facebook,$app_id,$access_token,$name)
{
$attachment = array('access_token' => $access_token);
return $facebook->api("/$app_id/accounts/test-users?installed=true&name=".$name."&permissions=", 'POST', $attachment);
}
/**
* @desc getAllTestUsers
* @param STRING $app_id
* @param STRING $access_token
* @return ArrayObject user
*/
function getAllTestUsers($app_id,$access_token)
{
$url = "https://graph.facebook.com/$app_id/accounts/test-users?access_token=$access_token";
$data=facebookCurl($url);
$request=json_decode($data,true);
return $request['data'];
}
/**
* @desc makingFriendConnections
* @param userObject $testuser1
* @param userObject $testuser2
* @return BOOLEAN success
*/
function makingFriendConnections($testuser1,$testuser2)
{
if(isset($testuser1['access_token'])==false)
return "the user not install on this app";
$url = "https://graph.facebook.com/".$testuser1['id']."/friends/".$testuser2['id']."?method=post&access_token=".$testuser1['access_token'];
return facebookCurl($url);
}
function getaccessToken($app_id,$secret)
{
$url = 'https://graph.facebook.com/oauth/access_token';
$params=array(
"type" => "client_cred",
"client_id" => $app_id,
"client_secret" => $secret);
$data=facebookCurl($url,$params);
return str_replace('access_token=', '', $data);
}
function facebookCurl($url,$params=NULL)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_NOBODY, $header);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if($params)
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params, null, '&') );
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
?>
沒有留言:
張貼留言