是你的Facebook sessionValid?要求與if語句:
if (facebook isSessionValid) {
NSLog (@"Working fine..."); // it might also be better to place the post method in here and put an else statement to open a alert where it says error or something like that
}
如果不是....檢查方法,如
handleOpenURL和fbDidLogin
登錄那裏,看看是否叫....如果不是我有一個非常相似問題...生病引導您完成
所以我的問題是我應該宣佈在App代表Facebook的變量...看這個..這是看你應該做的:
- (void)viewDidLoad
{
fbAppDelegate = (NerdfeedAppDelegate *)[[UIApplication sharedApplication] delegate];
[[fbAppDelegate facebook] authorize:nil];// or wherever you wanna put it...
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
-(IBAction)post {
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSString stringWithFormat:@"%@ has invited you (%@) to enjoy an offer at %@ on %@", [nameArray objectAtIndex:0], [facebookNameArray objectAtIndex:i], spotString, timeChosenString], @"name",
domain, @"link",
[NSString stringWithFormat:@"%@ (%@)", offerString, peopleString], @"caption",
@"Going out? Use JoynIn to grab amazing offers from local bars, clubs, and restaurants. All you need to bring is friends!", @"description",
titleChosen.text, @"message",
nil];
[fbAppDelegate.facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/feed/",[facebookUIDArray objectAtIndex:i]] andParams:params andHttpMethod:@"POST" andDelegate:self];
}
應用Delegate.h:
@interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate, FBDialogDelegate, FBLoginDialogDelegate, FBRequestDelegate>
{
Facebook *facebook;
}
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) Facebook *facebook;
應用Delegate.m:
static NSString *kAppID;
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [facebook handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [facebook handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
kAppID = [[NSString alloc] initWithString:@"//app id"];
// ....
facebook = [[Facebook alloc] initWithAppId:kAppId andDelegate:(id)self.viewController];
[facebook setSessionDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
return YES;
}
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
-(void)fbDidLogout {
// Remove saved authorization information if it exists
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
[defaults removeObjectForKey:@"FBAccessTokenKey"];
[defaults removeObjectForKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
}
在我的崗位每個參數除消息正常工作。所以問題不在於它沒有發佈,而是在發佈一切,但是來自用戶的小消息評論。我的猜測是我沒有正確設置參數? – 2012-04-16 19:34:14