2012-03-28 71 views
0

我在我的應用程序中包含用於IOS的Facebook API,以便從我的Facebook應用程序中分享鏈接。當我從我的應用程序點擊「分享」時,當我已經在我的設備上登錄Facebook時,它會分享鏈接。如果沒有,它會要求我登錄。一旦我登錄,窗口關閉,並且不共享該鏈接。我需要再次點擊「分享」才能分享鏈接。我登錄後需要自動分享的內容。 請幫我。iOS的Facebook API

+0

難道後重新啓動您的應用程序登錄? – peterept 2012-03-28 05:43:49

+1

發佈您的facebook部分代碼 – Hiren 2012-03-28 05:50:07

+0

您是否在[Facebook文檔](http://developers.facebook.com/docs/mobile/ios/build/#implementsso)上關注了'修改應用程序委託頭文件:第2步' – peterept 2012-03-28 06:03:31

回答

1

您是否使用iOS的Facebook SDK(https://developers.facebook.com/docs/mobile/ios/build/)?我嚴格遵循這些說明,並在第一次嘗試中爲我效果良好。對我來說,唯一的訣竅就是多討論解決方案通過更換,以確保應用程序沒有推出Safari瀏覽器進行身份驗證時,人們沒有足夠的Facebook應用程序:

[self authorizeWithFBAppAuth:YES safariAuth:YES]; 

[self authorizeWithFBAppAuth:YES safariAuth:NO]; 

在Facebook.h中的(void)authorize:(NSArray *)permissions方法。但除此之外,我只是按照上述網站上的說明進行操作,它對我來說無縫地工作。

如果這不能回答你的問題,也許你可以發佈一些代碼,以便我們可以幫助診斷髮生了什麼。這個問題(在沒有代碼的情況下)有點模糊。

1

如果您對facebook API集成有任何疑問,請參閱我的問題。

Facebook API dialog page showing error in second time and after that

試試這個代碼:

-(void)buttonPressed:(id)sender{ 
facebook = [[Facebook alloc] initWithAppId:@"YOUR_APP_ID" andDelegate:self]; 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) { 
      facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
      facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 
     } 
if (![facebook isSessionValid]) { 
    [facebook authorize:nil]; 
}else{ 
[self postWall]; 
} 
// Pre 4.2 support 
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    return [facebook handleOpenURL:url]; 
} 
- (void)fbDidLogin { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 
    [self postWall]; 
} 
-(void)postWall{ 

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
          @"https://developers.facebook.com/docs/reference/dialogs/",@"link", 
            @"http://fbrell.com/f8.jpg",@"picture", 
            @"Facebook Dialogs",@"name", 
            @"Reference Documentation",@"caption", 
            @"Using Dialogs to interact with users.",@"description", 
            @"Facebook Dialogs are so easy!",@"message", 
            nil]; 

    [[self facebook] dialog:@"feed" andParams:params andDelegate:self]; 

} 
+0

其實這不是我的情況。 – Bharathi 2012-03-28 07:17:05

+0

是的,我知道。我希望你從Facebook的Hackbook示例應用程序複製並粘貼你的代碼。 – 2012-03-28 07:27:16

+0

是的,我現在解決了這個問題。 – Bharathi 2012-03-28 07:45:29

1

如果您的應用程序沒有重新啓動您的應用登錄之後(從瀏覽器或者如果用戶已經安裝了Facebook應用程序),那麼你有未添加您的FB應用程式編號,您的Info.plist(這是你的應用程序如何被推出)

看到這裏的documentation去部分修改應用程序屬性列表文件

... Create a new row named URL types with a single item, URL Schemes, containing a single value, fbYOUR_APP_ID (the literal characters fb followed by your app ID). The following shows exactly how the row should appear in the .plist file...

例如:。

URL類型[0] .URL方案[0] .fb1234(其中Facebook應用程序ID是1234)