找我来翻过这篇文章在Facebook上论坛后文件的过程:使用Facebook Connect为iPhone上传照片
他们喂养一个Facebook对象一个UIImage。这似乎合乎逻辑,但是这在哪里被记录? API文档适用于所有平台。 iPhone对参数及其数据类型的具体要求在哪里?
感谢
******更新***** 我还没有跨越关于可可任何API文档出来。不过,我通过将论坛信息,Facebook示例代码和一些胶水拼凑起来,收集了我需要的信息。
希望他们会在接下来的几个月里更具体一些。
找我来翻过这篇文章在Facebook上论坛后文件的过程:使用Facebook Connect为iPhone上传照片
他们喂养一个Facebook对象一个UIImage。这似乎合乎逻辑,但是这在哪里被记录? API文档适用于所有平台。 iPhone对参数及其数据类型的具体要求在哪里?
感谢
******更新***** 我还没有跨越关于可可任何API文档出来。不过,我通过将论坛信息,Facebook示例代码和一些胶水拼凑起来,收集了我需要的信息。
希望他们会在接下来的几个月里更具体一些。
出于完整性:
下面介绍如何以Facebook Connect交互:如果您需要扩展权限 https://developers.facebook.com/docs/reference/api/
: https://developers.facebook.com/docs/guides/policy/examples_and_explanations/Extended_Permissions/
一个 https://developers.facebook.com/docs/guides/web/
的API调用Mobile Orchard的漂亮Obj-C包装: http://www.mobileorchard.com/marketing-in-code-part-2-setting-a-users-status-in-facebook-from-an-iphone-app-a-tutorial/
下面是我的实施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
Joe Hewitt(Facebook iPhone应用程序的作者)以他的Three20框架发布了大部分Facebook应用程序。它在github上托管。
我已经看到了,但我关于iPhone的Facebook连接库,专门谈。这些不是关于提供给方法的数据类型的任何文档。 – 2009-04-16 03:48:33
API链接不再有效。 – 2011-03-01 20:37:26