手游如果支持facebook登录,就要接入facebook的登录SDK。刚好工作中自己做了这一块的接入功能现在记录分享下来提供一个参考。

当前只是接入了登录这个功能,先简单的说说接入facebook登录的一个流程。客户端通过玩家输入的用户名和密码向facebook发起登录的请求,请求登录如果成功那么就会返回一个token(口令)。那么服务器这边就需要接收客户端发来的这个token,然后服务器端这边还需要一个access_token(这个token就是验证服务器端有没有权限访问facebook的API)向facebook发起验证请求,请求成功则需要通知客户端登录验证成功允许登录游戏,否则登录失败。

服务器端发送https get请求格式如下(注意是https):

graph.facebook.com/debug_token?input_token={token-to-inspect}&access_token={app-token-or-admin-token}

该端点使用以下参数:
•input_token。您需要检查的口令。(客户端发送过来的token)
•access_token:应用访问口令,或者应用开发者的访问口令。

input_token就是客户端发送给服务器端的token。

这里access_token是将应用编号和应用密钥当作 access_token 参数(应用编号和应用密钥是开发者向facebook申请接入应用的编号和密钥)。

正确访问形式是(这个是期中的一种方式,access_token可以不用app_id|app_scret直接用获取到的access_token,至于如何获取可以参考官方文档):
https://graph.facebook.com/debug_token?input_token={token-to-inspect}&access_token={app_id|app_secret}

app_id|app_secret 类似与这样:539325719526077|4012ab84f52253939ae6a3abb3b0be35

成功返回如下字符串(具体字段含义参考官方的文档):

"{"data":
 {"app_id":"539325719526077",
 "application":"Dynasty Blades",
 "expires_at":1469279745,
 "is_valid":true,
 "issued_at":1464095745,
 "metadata":{"auth_type":"rerequest"},
 "scopes":["public_profile"],
 "user_id":"687980841341627"
 }
}"

失败返回如下类似的字符串(具体字段含义参考官方的文档):

"{"data":
 {"error":
  {"code":
   190,
   "message":"Invalid OAuth access token."
  },
  "is_valid":false,
  "scopes":[]
 }
}"

具体的详情参考官方指南:

https://developers.facebook.com/docs/facebook-login/access-tokens/
https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens

手游服务器端接入facebook的SDK的更多相关文章

  1. 手游服务器端接入google的SDK

    在接入google的SDK之前,当然先要用你的google开发者账号要去申请你接入的应用,这些步骤就直接省略了具体的步骤可以查看这篇博文:http://blog.csdn.net/hjun01/art ...

  2. 零基础图文傻瓜教程接入Facebook的sdk

    零基础图文傻瓜教程接入Facebook的sdk 本人视频教程系类   iOS中CALayer的使用 0. 先解决你的 VPN FQ上外网问题,亲,解决这一步才能进行后续操作^_^. 1. 点击右侧链接 ...

  3. 手游接入Facebook的那些坑

    之前工作须要在手游中接入了facebook,并以此写了<手游接入Facebook功能>的博文.当时facebook sdk的版本号还是3.x.代码集成度比較低.集成起来也比較麻烦.文中仅仅 ...

  4. Facebook的手游出海之道

    对于不同的游戏公司,面临的同一个问题就是怎样让海外玩家能够一眼在App中发现你,成为你的新用户:不仅如此,怎样留住这些用户,让他们成为你游戏的忠实玩家也是让全部游戏开发商困扰的一个问题. w=580& ...

  5. 手游录屏直播技术详解 | 直播 SDK 性能优化实践

    在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...

  6. unity手游之聊天SDK集成与使用一

    手游中都有聊天功能,比如公会,私聊,世界聊天,那么找一个好用,功能强大的SDK的可以节省很多精力,帮助我们提高开发速度与游戏质量. 写本篇博文是为了方便使用这个SDK做聊天模块的程序,避免许多坑,我在 ...

  7. 手游开发者大会交流OGEngine新版本发布

    由OGEngine第二个手游开发者交流会举办的圆桌会议在深圳市高新技术园区举行.发布会不仅吸引了手游开发商,供应商也纷纷在国外支付,在国内手游和国外出版商参加. 围绕三个主题会议讨论和交流.每个主题: ...

  8. SLG手游Java服务器的设计与开发——架构分析

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  9. Unity3D手游开发实践

    <腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/ ...

随机推荐

  1. Jquery数字转盘:

    项目中,在充值流程中,加入了1个抽奖环节,需要转盘显示抽中的虚拟货币.网上找了相关的特效,最后锁定在这个特效上:http://www.jb51.net/jiaoben/319636.html.因为用的 ...

  2. 企业级任务调度框架Quartz(9) Quartz之作业触发器Trigger

    前序:      我们已经大概对Quartz的基本有了一个大概的认识:现在我们将要逐渐对Quartz的各个重要组件进行学习:前面已经对job进行了详细讲解,现在我们来认识下它的一个重要兄弟,没有它,作 ...

  3. Python3与2的故事一

    print函数:(Python3中print为一个函数,必须用括号括起来:Python2中print为class) Python 2 的 print 声明已经被 print() 函数取代了,这意味着我 ...

  4. 转载:rem的用法

    本文属于转载,为尊重原作者的劳动成果,在此标注原文地址,点击此处浏览. 1.rem(font size of the root element)是指相对于根元素的字体大小的单位,em(font siz ...

  5. ubuntu16.04 国内源(网易、阿里)

    ubuntu16.04 网易源 deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiversedeb htt ...

  6. List或者Map等对象创建语句放在循环外和循环内的区别

    每一个对象创建的时候都会有一个ID,List对象在执行add方法的时候是将对象的引用放入List中. 如果把创建Map对象的语句放在外面,在将对象add到List中时,前后向List中add的对象都是 ...

  7. cmake处理多源文件目录

    cmake处理多源文件目录 假设我们的源文件全部在src中,则我们需要在子文件src中建立文件CmakeLists.txt,内容如下: AUX_SOURCE_DIRECTORY(. DIR_TEST_ ...

  8. Ubuntu14.04 Anaconda

    我虚拟机Ubuntu14.04上的Python已经存在了两个版本,一个是python 2.7,一个是Python 3.4.想在它上面安装Anaconda,但又有所顾虑.我先想到的是,先卸载Ubuntu ...

  9. Java多线程演示样例(模拟通话,sleep,join,yield,wait,notify,Semaphore)

    主线程等待子线程的多种方法 synchronized浅析 sleep 是静态方法,Thread.sleep(xx)谁调用谁睡眠. join 是合并方法.当前线程调用其它线程xx.join()则等到xx ...

  10. Gradle的奇妙之处

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/50465885 Google I/O 2013大会上公布了AS,现在已经发展到2.0-b ...