Actionscript 3 将Facebook积分与AS3-SDK集成

Actionscript 3 将Facebook积分与AS3-SDK集成,actionscript-3,flash,facebook-graph-api,facebook-php-sdk,facebook-as3-api,Actionscript 3,Flash,Facebook Graph Api,Facebook Php Sdk,Facebook As3 Api,我正在尝试使用as3 sdk将Facebook积分整合为一种付费方式。我成功地获得了“赚取积分”和“购买积分”的工作。然而,第三个也是最重要的选项“buy_item”并没有显示在pay对话框中。不知何故,到callback.php的连接似乎是问题的原因。注意:我已经在我的应用设置中输入了回调URL,所以我没有忘记这一点。我使用Facebook开发者文档中的示例php文件 这是我的as3代码 public static function buyItem ():void {

我正在尝试使用as3 sdk将Facebook积分整合为一种付费方式。我成功地获得了“赚取积分”和“购买积分”的工作。然而,第三个也是最重要的选项“buy_item”并没有显示在pay对话框中。不知何故,到callback.php的连接似乎是问题的原因。注意:我已经在我的应用设置中输入了回调URL,所以我没有忘记这一点。我使用Facebook开发者文档中的示例php文件

这是我的as3代码

public static function buyItem ():void
        {
            var theAction:String = "buy_item";
            var order_info:Object = { "item_id":"1a" };
            var jOrder:String = JSON.encode(order_info);
            var data:Object = {
                action:theAction,
                order_info:jOrder,
                dev_purchase_params: {"oscif":true}
            };

            Facebook.ui("pay", data, purchaseCallback);

        }
我认为json编码可能是问题所在,但我不确定

我使用Facebook开发者文档中的示例php文件(摘录):


好的,所以我无法确认这是否有效,但它确实有效:

var title:String = "TITLE FOO";
var desc:String = "FOO";
var price:String = "200";
var img_url:String = [some image url];
var product_url:String = [some product url];

// create order info object
var order_info:Object = { 
   "title":title,
   "description":desc,
   "price":price,
   "image_url":img_url,
   "product_url":product_url
};


// calling the API ...
var obj:Object = {
   method: 'pay.prompt',
   order_info: order_info,
   purchase_type: 'item',
   credits_purchase: false
};

Facebook.ui('pay', obj, callbackFunction);

我看到这个例子在AS3方面与你的稍有不同,所以希望这个nfo能帮助你解决问题。我意识到这不是回答问题的最佳方式,但我在这里呆了几天后发现,没有人回答你,所以我想在这一点上有什么可以帮助你的。:)

好的,所以我无法确认这是否有效,但它确实有效:

var title:String = "TITLE FOO";
var desc:String = "FOO";
var price:String = "200";
var img_url:String = [some image url];
var product_url:String = [some product url];

// create order info object
var order_info:Object = { 
   "title":title,
   "description":desc,
   "price":price,
   "image_url":img_url,
   "product_url":product_url
};


// calling the API ...
var obj:Object = {
   method: 'pay.prompt',
   order_info: order_info,
   purchase_type: 'item',
   credits_purchase: false
};

Facebook.ui('pay', obj, callbackFunction);

我看到这个例子在AS3方面与你的稍有不同,所以希望这个nfo能帮助你解决问题。我意识到这不是回答问题的最佳方式,但我在这里呆了几天后发现,没有人回答你,所以我想在这一点上有什么可以帮助你的。:)

谢谢@Ascension Systems

这很好,比通过html创建弹出窗口和使用navigateToURL等要好得多

但有一点需要注意,这导致您的解决方案最初不适用于我:

如果您依赖Facebook提供的callback.php示例(在本页末尾:),则需要将此标记添加到order_info对象中:

var item_id:String = "1a";

var order_info:Object = {
   "title":title,
   "description":desc,
   "price":price,
   "image_url":img_url,
   "product_url":product_url,
   "item_id":item_id
};
如果没有定义item_id,Facebook的callback.php中的if语句(if($item_id=='1a')…)将失败,您将看到一个令人不快的窗口:“应用程序没有响应
您正在使用的应用没有响应。请稍后再试。“

谢谢@Ascension Systems

这很好,比通过html创建弹出窗口和使用navigateToURL等要好得多

但有一点需要注意,这导致您的解决方案最初不适用于我:

如果您依赖Facebook提供的callback.php示例(在本页末尾:),则需要将此标记添加到order_info对象中:

var item_id:String = "1a";

var order_info:Object = {
   "title":title,
   "description":desc,
   "price":price,
   "image_url":img_url,
   "product_url":product_url,
   "item_id":item_id
};
如果没有定义item_id,Facebook的callback.php中的if语句(if($item_id=='1a')…)将失败,您将看到一个令人不快的窗口:“应用程序没有响应
您正在使用的应用没有响应。请稍后再试。“

非常感谢!我注意到,您没有使用json编码的字符串。但是fb开发者页面中的credits callback.php希望order_信息是json编码的字符串。你知道一个没有json代码的callback.php示例吗?很抱歉,我需要进一步研究它。。。就像我说的,这不是我的解决方案,我自己也没有尝试过。非常感谢!我注意到,您没有使用json编码的字符串。但是fb开发者页面中的credits callback.php希望order_信息是json编码的字符串。你知道一个没有json代码的callback.php示例吗?很抱歉,我需要进一步研究它。。。就像我说的,这不是我的解决方案,我自己也没试过。