1

我有一個iPhone應用允許用戶錄製視頻,我希望他們能夠在Facebook上分享這些視頻。允許iOS應用用戶僅在需要時才使用Facebook進行身份驗證

但是,除非用戶決定分享,否則我不希望他/她被重定向到Facebook。我已經嘗試了Facebook iOS教程中提供的方法,並且它要求用戶重定向到Facebook並在應用程序啓動後立即進行身份驗證。

這是不必要的。

我想要做的是有一個「共享」按鈕,允許用戶進行身份驗證,然後使用POST請求後自動上傳視頻。

這可能嗎?有沒有人獲得過類似的效果?

謝謝。

回答

0

的這個問題的答案在於創造,作爲FBSessionDelegateFBRequestDelegate都運行的單,並允許你傳遞的Facebook一個實例在你的計劃。

我打電話給我的單身FacebookVideoUploader,在我的應用程序委託我叫:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 
    return [[[FacebookVideoUploader sharedInstance] facebook] handleOpenURL:url]; 

就是這樣。這使應用程序委託不受干擾,讓我們單例處理委託方法。

在我的視圖控制器我實現文件處理該視頻上傳我把:

  • (IBAction爲)shareWithFacebook:(UIButton的*)發件人{ [FacebookVideoUploader sharedInstance] postVideoToFacebook]。 }

就是這樣。所有委託和會話方法以及postVideoToFacebook都在FacebookVideoUploader單身人士處理。

這允許我的用戶登錄到我的應用程序,而不會被重定向到Facebook,並讓他們在他們決定分享視頻後立即進行身份驗證。

3

我不確定你在看哪個教程,但它可能讓你在啓動時進行身份驗證,就像演示一樣。

在您的應用程序,你可以授權你這樣的應用程序中的視頻保存

// Share button action 
- (IBAction)sharePressed { 

    // If user is already authenticated 
    if ([facebook isSessionValid]) { 
     [self shareLinkToFacebook]; 
    } else { 
    // Authenticate with just email permissions    
     NSArray* permissions = [NSArray arrayWithObjects: 
           @"email", nil]; 

     [facebook setSessionDelegate:self]; 
     [facebook authorize:permissions]; 
    } 
} 

- (void) shareLinkToFacebook { 

    // Create a simple post 
    NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; 

    [params setValue:[video url] forKey:@"link"]; 

    [params setValue:[video title] forKey:@"name"]; 
    [params setValue:@"description" forKey:@"description"]; 

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

// FBSessionDelegate 
- (void) fbDidLogin { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:kFBAccessToken]; 
    [defaults setObject:[facebook expirationDate] forKey:kFBExpirationDateKey]; 
    [defaults synchronize]; 

    [self shareLinkToFacebook]; 
} 

你將不得不與Facebook進行身份驗證,以獲得訪問之後鍵 - 還有周圍沒有辦法。

+0

謝謝@scott bossak。我用你的答案有助於達成我的解決方案,我將在稍後發佈。 +1 –

0

你不能做你想做的。要發佈內容,您必須擁有有效的access_token。實現這一目標的唯一方法是遵循官方示例中所見的登錄過程。

+0

hi @majinb_igor。事實證明,我能夠達到我想要的結果。我稍後會發布我的解決方案。 –

相關問題