1

ユーザーがビデオを録画できる iPhone アプリを持っており、それらのビデオを Facebook で共有できるようにしたいと考えています。

ただし、ユーザーが共有することを決定しない限り、Facebook にリダイレクトされることは望ましくありません。Facebook iOS チュートリアルで提供されている方法を試してみましたが、アプリが起動したらすぐに、ユーザーを Facebook にリダイレクトして認証する必要があります。

それは不要です。

私がやりたいのは、ユーザーが認証してから、POSTリクエストを使用してすぐにビデオを自動的にアップロードできる「共有」ボタンを用意することです。

これは可能ですか?誰かが同様の効果を達成しましたか?

ありがとう。

4

3 に答える 3

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 で認証する必要があります。これを回避する方法はありません。

于 2012-06-22T17:57:24.597 に答える
0

この質問への答えは、FBSessionDelegateとの両方として機能するシングルトンを作成することにあり、プログラムの周りにFBRequestDelegate1つのインスタンスを渡すことができます。Facebook

シングルトンに電話FacebookVideoUploaderし、アプリのデリゲートで次のように電話しました。

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

それでおしまい。これにより、アプリデリゲートが整理され、シングルトンがデリゲートメソッドを処理できるようになります。

ビデオのアップロードを処理するViewControllerの実装ファイルに、次のように記述します。

  • (IBAction)shareWithFacebook:(UIButton *)sender {[[FacebookVideoUploader sharedInstance] postVideoToFacebook]; }

それでおしまい。すべてのデリゲートメソッドとセッションメソッド、およびpostVideoToFacebookはFacebookVideoUploaderシングルトンで処理されます。

これにより、ユーザーはFacebookにリダイレクトされることなくアプリにログインでき、ビデオを共有することを決定するとすぐに認証できるようになります。

于 2012-06-25T21:08:00.963 に答える
0

やりたいことはできません。何かを公開するには、有効な access_token が必要です。これを実現する唯一の方法は、公式の例で見たログイン手順に従うことです。

于 2012-06-23T12:49:09.810 に答える