zoukankan      html  css  js  c++  java
  • 探索iPhone平台下Facebook的开发

     

    From  http://iphoneinaction.com/?p=10

    * 有iPhone上的开发库吗 ?
    * 开发流程 ?

    官方提供 https://github.com/facebook/facebook-ios-sdk

    下面简单总结下具体的开发流程

    开发者最关心的应该是接口.
    Facebook就是iPhone client 和后台通信的接口。其实所有的流程都包含在interface 的定义里面。

    大致流程应该是:

    Step 1: Login In
    Step 2: Communication ( send request and handle response )
    Step 3: Login Out

    Step 1: Login In

    首先,创建Facebook instance

    Facebook* facebook = [[Facebook alloc] init];

    在UI上,弹出



    Button 实际会调用

    - (void) authorize:(NSString*) application_id
    permissions:(NSArray*) permissions
    delegate:(id) delegate;

    参数说明:

    application_id
    创建自己的app id http://www.facebook.com/developers/createapp.php

    permissions

    比如
    _permissions = [[NSArrayarrayWithObjects:
    @"read_stream", @"offline_access",nil] retain];

    delegate
    负责login ,log out etc

    /*
    *Your application should implement this delegate
    */
    @protocol FBSessionDelegate

    @optional

    /**
    * Called when the dialog successful log in the user
    */
    - (void)fbDidLogin;

    /**
    * Called when the user dismiss the dialog without login
    */
    - (void)fbDidNotLogin:(BOOL)cancelled;

    /**
    * Called when the user is logged out
    */
    - (void)fbDidLogout;

    @end

    Step 2: 和facebook 后台通信

    让我们先来看看通信的api

    - (void) requestWithParams:(NSMutableDictionary *) params
    andDelegate:(id ) delegate;

    - (void) requestWithMethodName:(NSString *) methodName
    andParams:(NSMutableDictionary *) params
    andHttpMethod:(NSString *) httpMethod
    andDelegate:(id ) delegate;

    - (void) requestWithGraphPath:(NSString *) graphPath
    andDelegate:(id ) delegate;

    - (void) requestWithGraphPath:(NSString *)graphPath
    andParams:(NSMutableDictionary *) params
    andDelegate:(id ) delegate;

    - (void) requestWithGraphPath:(NSString *)graphPath
    andParams:(NSMutableDictionary *) params
    andHttpMethod:(NSString *) httpMethod
    andDelegate:(id ) delegate;

    实际上这5个API 可以分为两个大类:

    1, Old REST API

    - (void) requestWithParams:(NSMutableDictionary *) params
    andDelegate:(id ) delegate;

    - (void) requestWithMethodName:(NSString *) methodName
    andParams:(NSMutableDictionary *) params
    andHttpMethod:(NSString *) httpMethod
    andDelegate:(id ) delegate;

    例子:

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"4", @"uids", @"name", @"fields", nil]; [facebook requestWithMethodName: @"users.getInfo" andParams: params andHttpMethod: @"GET" andDelegate: self];

    2, Graph API

    - (void) requestWithGraphPath:(NSString *) graphPath
    andDelegate:(id ) delegate;

    - (void) requestWithGraphPath:(NSString *)graphPath
    andParams:(NSMutableDictionary *) params
    andDelegate:(id ) delegate;

    - (void) requestWithGraphPath:(NSString *)graphPath
    andParams:(NSMutableDictionary *) params
    andHttpMethod:(NSString *) httpMethod
    andDelegate:(id ) delegate;
    比如

    [facebook requestWithGraphPath:@"me" andDelegate:self]; // get information about the currently logged in user [facebook requestWithGraphPath:@"platform/posts" andDelegate:self]; // get the posts made by the "platform" page
    [facebook requestWithGraphPath:@"me/friends" andDelegate:self]; // get the logged-in user's friends
    还有一类很重要的API
    Displaying Dialogs

    - (void) dialog:(NSString *) action
    andDelegate:(id) delegate;

    - (void) dialog:(NSString *) action
    andParams:(NSMutableDictionary *) params
    andDelegate:(id ) delegate;

    比如用户在 wall 上发消息

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: apiKey, @"api_key", nil]; [facebook dialog:@"stream.publish" andParams:params andDelegate:self];

    Step 3 : Log out

    这一切似乎很容易啊!
    具体可以参考例子 DemoApp


    This was written by admin. Posted on Monday, November 22, 2010, at 5:02 pm. Filed under Uncategorized. Bookmark the permalink. Follow comments here with the RSS feed.     Post a comment or leave a trackback. Edit this entry.
    Post a Comment
    Logged in as ADMIN. Log out?
    COMMENT


    ‹ The TTModel Ecosystem Diagram
  • 相关阅读:
    带着萌新看springboot源码
    学习springboot
    第一次来博客园
    第2章 排版样式
    第1章 Bootstrap介绍
    tab左右箭头切换
    $()下的常用方法2
    前端性能优化----yahoo前端性能团队总结的35条黄金定律
    tab
    $()下的常用方法
  • 原文地址:https://www.cnblogs.com/ligun123/p/2408323.html
Copyright © 2011-2022 走看看