DotNetOpenAuth的Facebook登录,获取头像与基本资料
Facebook的相对比较简单,下载下来的DEMO基本就可以用了,主要列一下需要注意的地方:
1.权限设置:
是在FacebookClient里面的AuthorizationEndpoint。具体设置示例如下:
AuthorizationEndpoint = new Uri( "https://graph.facebook.com/oauth/authorize?scope=email,user_birthday,read_stream,publish_stream" ) |
2.获取当前登录用户的EMAIL,就是需要权限设置加上email,然后如下就可以获取用户的基本资料了:
<a href= "https://graph.facebook.com/me?scope=email&fields=id,name,email,first_name,last_name,link,birthday,picture&access_token=AAABB" rel= "noopener nofollow" >https://graph.facebook.com/me?scope=email&fields=id,name,email,first_name,last_name,link,birthday,picture&access_token=AAABB</a>B |
3. 获取用户头像。facebook的只要知道用户的ID或name就可以获取了。一般是获取最大的然后resize成需要的。地址如下:
http: //graph.facebook.com/randy.ran.12327/picture?type=large //or http: //graph.facebook.com/100000396765290/picture?type=large |
4. 获取好友列表及查看好友是否已经使用了此的APP,请求地址:
https: //graph.facebook.com/me/friends?fields=id,name,installed&limit=5000&offset=0 |
这里注意的是 installed 参数,默认情况下是没有这个返回的。如果好友已经使用了此的APP,则这installed=true ,就是根据这个来判断有哪些好友已经用了相同的APP的。然后就可以直接关注了。
5. 使用fbUI的发送消息邀请好友
<script src= "http://connect.facebook.net/en_US/all.js" ></script> <script type= "text/javascript" > FB.init({ appId: 'app id' , cookie: true , status: true , xfbml: true }); function FacebookInviteFriends2() { var link_url = "http://www.facebook.com/" ; FB.ui({ method: 'send' , to: '100001412299717' , name: "Join me on my ibt!" , description: "Randy is on Pinterest, a place to discover, collect, and share inspiration. Join Pinterest to see Randy's pins and start pinning." , picture: "http://media-cache-ec5.pinterest.com/avatars/randyran8_1356501711_444.jpg" , link: link_url }, function (response) { alert(response); }); } </script> |
相关的可参考:https://developers.facebook.com/docs/reference/dialogs/requests/ ,还有这里的邀请好友:http://www.9lessons.info/2012/07/facebook-invite-friends-api.html
6. 已API方式分享:
/// <summary> /// 分享到facebook /// </summary> /// <param name="token"></param> /// <param name="name">标题</param> /// <param name="link">点击了的连接地址</param> /// <param name="caption">caption(一行)</param> /// <param name="description">description</param> /// <param name="source">显示的图片地址150x150大小,需要以http开头的哦</param> /// <param name="message">评论内容</param> /// <returns></returns> public static BoolMessage Share(string token, string name, string link, string caption, string description, string source, string message) { Dictionary<string, string> dic = new Dictionary<string, string>(); dic.Add( "name" , name); dic.Add( "link" , link); dic.Add( "caption" , caption); dic.Add( "description" , description); dic.Add( "source" , source); dic.Add( "privacy" , "{\"value\": \"EVERYONE\"}" ); dic.Add( "message" , message); dic.Add( "access_token" ,token); string url = "https://graph.facebook.com/me/feed" ; return HttpHelper.WebRequest(HttpHelper.Method.POST, url,dic); } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步