•  
开发中心

FAQ

出自YiqiWiki

跳转到: 导航, 搜索

目录

  • 1 一起的F8 开放平台与FaceBook的开放平台的关系
  • 2 我开发的应用可以同时支持一起与FaceBook吗
  • 3 FBML应用的工作流程
  • 4 IFRAME应用的工作流程
  • 5 如何开发我的应用
  • 6 不是php开发的应用如何调用API

一起的F8 开放平台与FaceBook的开放平台的关系

一起F8开放平台是一个兼容FaceBook F8开放标准的开放平台。本平台与FaceBook 开放平台逻辑架构完全相同,你可以完全使用FaceBook F8标准的任何技术,如 API, FBML, FQL,FBJS等来构建自己的应用。一起平台的开放接口与FaceBOOK的 F8完全一致, 包括API命名,FBML的名称空间, FQL的语法, FBJS的对象与使用方式等。

一起F8开放平台是在FaceBook Open Platform 的基础上开发的。对于FaceBook F8的标准的各部分,一起都支持。但出于一起自身的考虑,我们也保留了一些客观限制,集中在我们对FBML,API,FQL的支持都有一定的范围限制(参见相应的说明)。在将来我们可以逐步去掉那些限制,并保证不影响现有的应用。

我开发的应用可以同时支持一起与FaceBook吗

Web应用都可以,不过你需要检查一起不支持的部分是否影响你的功能。

你需要对应用做少量改动:

  • 如果你的应用用php开发,改动方法是:
    • 你要下载一起的开发包,并解压到原来存放facebook开发包的目录下;
    • 在你的代码中原来包含 "facebook.php"的地方修改为:
if ($_REQUEST['__FROMYIQI__'] == 1)
	require_once 'yiqi.php';
else
	require_once 'facebook.php';
  • 如果你的应用用其他WEB技术开发,我们目前没有提供开发包,你调用一起API时需要用F8 REST API的方式访问下述地址:
      http://f8.yiqi.com/api/restserver.php

FBML应用的工作流程

假设你的应用基本状况如下:

应用名称: hello
应用APIKEY: 12345678abcdef
应用在一起上的CavasURL: http://f8.yiqi.com/hello/
应用的起始地址: http://f8.yiqi.com/hello/index.php
应用的CabackURL: http://www.foo.com/hello/

下面是这个应用的一般工作流程:

  1. 用户点击应用的图标,浏览器访问 f8.yiqi.com/hello/index.php
  2. 平台计算出应用名称为hello, apikey为12345678abcdef, CabackURL为www.foo.com/hello/
  3. 平台向 www.foo.com/hello/index.php发送POST请求,POST中包含的数据如下:
    fb_sig_in_ifram=0
    fb_sig_in_canvas=1 or 0
    fb_sig_api_key=12345678abcdef
    fb_sig_session_key=yoursessionkey
    fb_sig_time=currenttime
    fb_sig_user=currentuserid
    __FROMYIQI__=1
    fb_sig=所有参数的一个安全签名值
  4. 应用在www.foo.com/hello/index.php中收到这个请求,利用一起的开发包解析出参数,以便调用一起的API(方法参见#如何开发我的应用)。
  5. 应用在www.foo.com/hello/index.php中调用一起API或调用自己的业务逻辑,返回一段包含FBML片段与HTML片段的代码。
  6. 平台将上述过程返回的代码交给FBML分析器,转换为相应功能的HTML代码,输出给浏览器。
  7. 用户在上述结果页面中执行操作,该操作访问新的url,如 new.php.
  8. 浏览器计算出这个url的全路径为f8.yiqi.com/hello/new.php,向这个url发送请求。
  9. 回到步骤2,执行后续过程,区别点是:
    以后的步骤中index.php用new.php代替;
    POST参数中也包含本次请求提交的参数(如果有的话)。

IFRAME应用的工作流程

假设你的应用基本状况如下:

应用名称: hello
应用APIKEY: 12345678abcdef
应用在一起上的CavasURL: http://f8.yiqi.com/hello/
应用的起始地址: http://f8.yiqi.com/hello/index.php
应用的CabackURL: http://www.foo.com/hello/

下面是这个应用的一般工作流程:

  1. 用户点击应用的图标,浏览器访问 f8.yiqi.com/hello/index.php
  2. 平台计算出应用名称为hello, apikey为12345678abcdef, CabackURL为www.foo.com/hello/
  3. 平台生成一个IFRAME代码, src 为:
    www.foo.com/hello/index.php?fb_sig_in_ifram=1&fb_sig_in_canvas=1 or 0&fb_sig_api_key=12345678abcdef&fb_sig_session_key=yoursessionkey&fb_sig_time=currenttime&fb_sig_user=currentuserid&__FROMYIQI__=1&fb_sig=所有参数的一个安全签名值
  4. 应用在www.foo.com/hello/index.php中收到这个请求,利用一起的开发包解析出参数,以便调用一起的API(方法参见#如何开发我的应用)。
  5. 应用在www.foo.com/hello/index.php中调用一起API或调用自己的业务逻辑,返回一段HTML代码(不能包含FBML,也不能使用FBJS)。
  6. 用户在上述结果页面中执行操作,该操作访问新的url,如 new.php.
  7. 浏览器计算出这个url的全路径为www.foo.com/hello/new.php,向这个url发送请求。
  8. 应用编写时必须保证向这个url发送请求时要追加步骤3中的参数,否则new.php中不能使用一起的API)。
  9. 回到步骤4,执行后续过程,区别点是:
    以后的步骤中index.php用new.php代替;
    请求参数中也包含本次请求提交的参数(如果有的话)。

如何开发我的应用

  1. 首先你需要阅读一起的开发文档,地址 http://f8.yiqi.com/wiki
  2. 仔细阅读创建您第一个应用
  3. 下载一起的开发包
  4. 下载一起的应用样例
  5. 打开样例中的appinclude.php文件,内容如下:
    <?php if ($_REQUEST['__FROMYIQI__'] == 1) require_once 'yiqi.php'; else require_once 'facebook.php'; $appapikey = 'aaaaaaaaaaaaaaaaaaaaaaaaa'; $appsecret = 'bbbbbbbbbbbbbbbbbbbbbbbbb'; $facebook = new Facebook($appapikey, $appsecret); $user = $facebook->require_login(); $failbackurl = 'http://www.yi.com/login.php'; //catch the exception that gets thrown if the cookie has an invalid session_key in it try { if (!$facebook->api_client->users_isAppAdded()) { $facebook->redirect($facebook->get_add_url()); } } catch (Exception $ex) { //this will clear cookies for your application and redirect them to a login prompt $facebook->set_user(null, null); $facebook->redirect($failbackurl); } ?>
  6. 将其中的$appapikey与appsecret为你的应用的 apikey 与secret(可以在应用的属性页中看到)
  7. 修改index.php或添加你的新功能页(每个功能页都需要像样例那样包含appinclude.php), 调用一起的API。示例如下:
    <?php require_once 'appinclude.php'; echo "get friend list:<br>"; try { $rs = $facebook->api_client->friends_get(); print("<pre>"); echo "total count:".count($rs)."<br>"; echo "list as follow:<br>"; print_r($rs); print("</pre>"); } catch (FacebookRestClientException $ex) { echo $ex->getMessage(); } echo "<br><br><br><br>"; ?>
  8. 测试你的应用

不是php开发的应用如何调用API

一起网已经提供了PHP的开发包,你可以用开发包,结合样例程序的用法调用一起的API。PHP开发包的用法屏蔽了REST 调用方法的一些与方法无关,但是每次调用都要使用的参数。如果你的应用不是PHP的,可以按照下面方法(以users.getInfo举例):

1 先看API中user.getInfo的用法说明
2 准备一个关联数组,包含API users.getInfo中要求的参数(sig除外)
3 给这个关联数组增加一个元素,名为method,值为facebook.users.getInfo(其他方法以此类推)
4 给这个数组中的参数签名:签名方法为:
      A 现将数组排序,排序为字典序
      B 将数组转换为字符串,转变方法为key1=value1key2=value2key3=value3形式。对于方法users.getInfo, 形式为
               api_key=yourapikeycall_id=yourecallidmethod=facebook.users.getInfosession_key=yoursessionkey 以及其他参数
              其中yourapikey是你的应用的key, yoursessionkey 是传给你的session
            注意其中的方法都要加上facebook.做为前缀。
     C 将上述串再追加上你的 api secretkey
     D 用MD5算出上诉串的MD5值,保留在2中的数组中,命名为sig
5 将这个数组转换为字符串,转变方法为key1=value1&key2=value2&key3=value3形式。
6 发送POST 请求给http://f8.yiqi.com/api/restserver.php, 请求的参数为上述字符串

如果你不安装上述方法做,可能会收到错误 Invalid Signare

取自"http://f8.yiqi.com/wiki/index.php/FAQ"
查看
  • 页面
  • 讨论
  • 源码
  • 历史
个人工具
  • 10.0.5.33
  • 该IP的对话页
  • 登录
导航
  • 首页
  • API
  • FBML
  • FQL
  • FBJS
  • 快速入门
 
工具箱
  • 链入页面
  • 链出更改
  • 上传文件
  • 特殊页面
  • 可打印版
  • 永久链接
Powered by MediaWiki
  • 这页的最后修订在 2008年9月22日 (星期一) 07:41。
  • 本页面已经被浏览36,237次。
  • 隐私政策
  • 关于YiqiWiki
  • 免责声明