Documented process for using facebook connect for the iPhone to upload photos

后端 未结 3 2010
一向
一向 2020-11-29 03:37

After looking I did come accross this post on the facebook forums:

link

They are feeding the facebook object a UIImage. That seems logical, but where is thi

相关标签:
3条回答
  • 2020-11-29 04:16

    Joe Hewitt (the author of the Facebook iPhone app) released large parts of the Facebook application as his Three20 framework. It is hosted on github.

    0 讨论(0)
  • 2020-11-29 04:21

    For completeness:

    The following explains how to interact with Facebook Connect: https://developers.facebook.com/docs/guides/web/

    The API calls: https://developers.facebook.com/docs/reference/api/

    If you need extended Permissions: https://developers.facebook.com/docs/guides/policy/examples_and_explanations/Extended_Permissions/

    A nice Obj-C wrapper on Mobile Orchard: http://www.mobileorchard.com/marketing-in-code-part-2-setting-a-users-status-in-facebook-from-an-iphone-app-a-tutorial/

    What follows is my implementation of a SessionViewController:

    #import "SessionViewController.h"
    #import "FBConnect.h"
    #import "FBFeedDialog.h"
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    // This application will not work until you enter your Facebook application's API key here:
    
    static NSString* kApiKey = @"XXXXXXXXXXXXXXXXXX";
    
    // Enter either your API secret or a callback URL (as described in documentation):
    static NSString* kApiSecret = @"XXXXXXXXXXXXXXXXXX"; // @"<YOUR SECRET KEY>";
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    
    @implementation SessionViewController
    
    @synthesize label = _label;
    @synthesize anImage;
    
    - (void)done:(id)sender{
    
        [self dismissModalViewControllerAnimated:YES];
    
    
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    // NSObject
    
    - (id)init {
        if (self = [super init]) {
            _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain];
        }
        return self;
    }
    
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
      if (self = [super initWithNibName:@"SessionViewController" bundle:nibBundleOrNil]) {
          _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain];
    
      }
      return self;
    }
    
    - (void)dealloc {
        [_session release];
        [anImage release];
        [super dealloc];
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    // UIViewController
    
    - (void)viewDidLoad {
      [_session resume];
      _loginButton.style = FBLoginButtonStyleWide;
    }
    
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
      return NO;
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    // FBDialogDelegate
    
    - (void)dialog:(FBDialog*)dialog didFailWithError:(NSError*)error {
      _label.text = [NSString stringWithFormat:@"Error(%d) %@", error.code,
        error.localizedDescription];
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    // FBSessionDelegate
    
    - (void)session:(FBSession*)session didLogin:(FBUID)uid {
      _permissionButton.hidden = NO;
      _feedButton.hidden = NO;
    
      NSString* fql = [NSString stringWithFormat:
        @"select uid,name from user where uid == %lld", session.uid];
    
      NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"];
      [[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params];
    }
    
    - (void)sessionDidLogout:(FBSession*)session {
      _label.text = @"";
      _permissionButton.hidden = YES;
      _feedButton.hidden = YES;
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    // FBRequestDelegate
    
    - (void)request:(FBRequest*)request didLoad:(id)result {
    
        if([result isKindOfClass:[NSArray class]]){
            NSArray* users = result;
            NSDictionary* user = [users objectAtIndex:0];
            NSString* name = [user objectForKey:@"name"];
            _label.text = [NSString stringWithFormat:@"Logged in as %@", name];
        }  
    
    }
    
    - (void)request:(FBRequest*)request didFailWithError:(NSError*)error {
      _label.text = [NSString stringWithFormat:@"Error(%d) %@", error.code,
        error.localizedDescription];
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    
    - (IBAction)askPermissionForPhotoUpload:(id)target {
        FBPermissionDialog* dialog = [[[FBPermissionDialog alloc] init] autorelease];
        dialog.delegate = self;
        dialog.permission = @"photo_upload";
        [dialog show];
    }
    - (IBAction)publishPhoto:(id)target{
    
        NSMutableDictionary *args = [[[NSMutableDictionary alloc] init] autorelease];
        [args setObject:self.anImage forKey:@"image"];  
        FBRequest *uploadPhotoRequest = [FBRequest requestWithDelegate:self];
        [uploadPhotoRequest call:@"photos.upload" params:args];
    }
    
    
    - (void)askPermission:(id)target {
      FBPermissionDialog* dialog = [[[FBPermissionDialog alloc] init] autorelease];
      dialog.delegate = self;
      dialog.permission = @"status_update";
      [dialog show];
    }
    
    - (void)publishFeed:(id)target {
      FBFeedDialog* dialog = [[[FBFeedDialog alloc] init] autorelease];
      dialog.delegate = self;
      dialog.templateBundleId = 9999999;
      dialog.templateData = @"{\"key1\": \"value1\"}";
      [dialog show];
    }
    
    @end
    
    0 讨论(0)
  • 2020-11-29 04:30

    Graph Api documentation of Photo upload are follows..

    https://developers.facebook.com/blog/post/498/

    https://developers.facebook.com/docs/reference/api/photo/

    And you can see how to do this in iPhone here.

    http://www.raywenderlich.com/1626/how-to-post-to-a-users-wall-upload-photos-and-add-a-like-button-from-your-iphone-app

    0 讨论(0)
提交回复
热议问题