gpt4 book ai didi

actionscript-3 - Facebook 的 AS3 - 为什么我的登录回调没有被调用?

转载 作者:行者123 更新时间:2023-12-04 06:47:49 25 4
gpt4 key购买 nike

我们正在开发一个与 Facebook 高度集成的 Flash 网站。

我们注意到一个错误,如果用户没有登录 Facebook,而我们尝试通过 Adob​​e 提供的 AS3 类中的 Facebook.login 登录,则会调用回调,但参数结果:对象和失败:对象都是空的。如果我们的用户随后尝试再次登录,一切正常,如果成功,则在 result:Object 中返回用户 ID。

这是 Facebook 本身的错误吗?有没有人见过这个?我们确定一周前不会发生这种情况。

Facebook.login(onLogin, {perms:Config.FB_PERMISSIONS});

private function onLogin(result:Object, fail:Object):void {

// first time this is called after the popup closes returns
// result == null and fail == null
// second time around, results are as expected
}

干杯,马克。

最佳答案

这是一种使用 Graph API 连接到 Facebook 的方法。一切都在评论中解释。这实际上是连接到 facebook,没有张贴到墙上或任何东西。该部分可以在此类下方找到。

package com.DAL 
{
import com.facebook.graph.Facebook;
import flash.events.Event;
import com.facebook.graph.data.FacebookSession;
import flash.events.EventDispatcher;
import flash.events.MouseEvent;
import com.fbLoginButton;
import com.adobe.serialization.json.JSON;

public class FBConnect extends EventDispatcher
{
/******************************************
* Variables
******************************************/
private var _applicationID:String;
private var _extendedPermissions:Object;

/******************************************
* Constants
******************************************/
public static const CONNECTED:String = "CONNECTED";

/******************************************
* Properties
******************************************/
public function get applicationID():String
{
return _applicationID;
}

/******************************************
* Constructor
******************************************/
public function FBConnect()
{
super();

//Set applicationid
_applicationID = "YOUR_ID";

//Set permissions to ask for
_extendedPermissions = {perms:"read_stream, publish_stream, user_about_me, read_friendlists, user_photos"};

//Initialize facebook
Facebook.init(_applicationID);
}

/******************************************
* Methods
******************************************/
public function login(e:MouseEvent):void
{
Facebook.login(handleLogin, _extendedPermissions);
}

private function handleLogin(response:Object, fail:Object):void
{
dispatchEvent(new Event(CONNECTED));
}
}
}

那应该负责连接到 facebook。如果您想张贴到墙上或任何东西,您可以在下面找到一个小例子。

        /******************************************
* Constructor
******************************************/
public function FBLogic()
{
super();

_connect = new FBConnect();
_connect.addEventListener(FBConnect.CONNECTED, startLoaders);

initLoaders();
}

/******************************************
* Methods
******************************************/

...

public function post(message:String):void
{
var _params:Object = new Object();

_params.access_token = Facebook.getSession().accessToken;
_params.message = message;

Facebook.api("/" + _userID + "/feed", messagePosted, _params, "POST");
}

public function messagePosted(response:Object, fail:Object):void
{
dispatchEvent(new Event(MESSAGEPOSTED));
}

public function login(e:MouseEvent):void
{
var _loginButton:fbLoginButton = e.target as fbLoginButton;
_loginButton.alpha = 0;
_loginButton.visible = false;

_connect.login(e);
}

如果这不起作用,您可能忘记了将一些代码添加到您的 html 文件中。请务必将以下代码添加到您的 html 文件的头部:

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 

你还需要一个名为 fb-root 的 div,声明如下。

<body>
<div id="fb-root"></div>
<div id="flashContent">
</div>
</body>

关于actionscript-3 - Facebook 的 AS3 - 为什么我的登录回调没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5863992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com