0
저는 현재 작업중인 게임의 업적을 설정하고 있습니다. Flash는 성취도에 대한 URL과 업적 잠금을 해제하라는 명령을 보냅니다. 내 서버에는 Flash에서 Facebook으로 표시 순서와 업적 URL을 전달하는 코드가 있습니다. 플래시에서 업적을 달성하기 위해 버튼을 누르면 게임에서 성공적으로 잠금 해제되며 시세 표시로 볼 수 있습니다. iFrame에서 버튼을 클릭하여 업적을 달성하면 잠금 해제되지 않습니다. $ result를 로깅하면 1이 반환되지만 시세 표시기에는 나타나지 않고 잠금 해제 된 것으로 계산됩니다.플래시에서 Facebook 업적을 설정하십시오.
postachievement.php
<?php
include 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => '[APP_ID]',
'secret' => '[APP_SECRET]',));
$access_token = $facebook->getAccessToken();
//$uid = $facebook->getUser();
$uid = "[Static ID for Testing]";
$achievement = $_POST['achievement'];
$achievement_URL = 'https://graph.facebook.com/' . $uid . '/achievements';
$achievement_result = https_post($achievement_URL,
'achievement=' . $achievement
. '&access_token=' . $access_token);
error_log($result);
function https_post($uri, $postdata)
{
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
Achievements.as
package Facebook
{
public class Achievements
{
public static var trophy:Achievements;
private static var achievement:String; // URL of the Achievement
public function Achievements()
{
trophy = this;
}
public static function testAchievement1():void
{
achievement = "https://(URL)/zombies/game/achievements/test6.html";
Database.data.giveAchievement(achievement);
}
public static function testAchievement2():void
{
achievement = "https://(URL)/zombies/game/achievements/test7.html";
Database.data.giveAchievement(achievement);
}
public static function testAchievement3():void
{
achievement = "https://(URL)/zombies/game/achievements/test8.html";
Database.data.giveAchievement(achievement);
}
public static function testAchievement4():void
{
achievement = "https://(URL)/zombies/game/achievements/test9.html";
Database.data.giveAchievement(achievement);
}
public static function testAchievement5():void
{
achievement = "https://(URL)/zombies/game/achievements/test10.html";
Database.data.giveAchievement(achievement);
}
}
}
성과를 다루는 데이터베이스 클래스의 일부 조각.
Database.as
// Give Achievement
private static var achieveLoader:URLLoader = new URLLoader();
private static var achieveRequest:URLRequest = new URLRequest;
achieveRequest.url = "https://(URL)/zombies/game/postachievement.php";
// Grant Player an Achievement
public function giveAchievement(_achievement:String):void
{
var vars:URLVariables = new URLVariables();
vars.achievement = _achievement;
achieveRequest.method = URLRequestMethod.POST;
achieveRequest.data = vars;
achieveLoader = new URLLoader();
achieveLoader.dataFormat = URLLoaderDataFormat.TEXT;
achieveLoader.load(achieveRequest);
}