0

私はまだ古いFacebookグラフAPIを使用して、アプリのユーザーウォールに投稿しています。iOS6以降、FacebookはOSに統合されています。どうすれば投稿に使用できますか?Twitterフレームワークと同じように使用したいと思います。

    TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];
    [tweetViewController setInitialText:@"bla bla bla"];
    [self dismissModalViewControllerAnimated:YES];
    [self presentModalViewController:tweetViewController animated:YES];
4

2 に答える 2

7

iOS 6以降、Twitter、Facebook、WeiboなどのサポートされているすべてのサービスタイプにSLComposeViewControllerを使用できます。注:Social.frameworkを追加することを忘れないでください

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
     SLComposeViewController *fb = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
     [fb setInitialText:@"bla bla bla"];
     [self presentModalViewController:fb animated:YES];
}
于 2012-09-30T03:04:55.620 に答える
3

投稿を「マイアプリ名経由」で送信する場合は、SLRequestを使用できます。

-(IBAction)postMessage:(id)sender
{
    // Create the URL to the end point
    NSURL *postURL = [NSURL URLWithString:@"https://graph.facebook.com/me/feed"];

    NSString *link = [[NSString alloc] init];
    NSString *message = [[NSString alloc] init];
    NSString *picture = [[NSString alloc] init];
    NSString *name = [[NSString alloc] init];
    NSString *caption = [[NSString alloc] init];
    NSString *description = [[NSString alloc] init];

    link = @"http://developer.apple.com/library/ios/#documentation/Social/Reference/Social_Framework/_index.html%23//apple_ref/doc/uid/TP40012233";
    message = @"Testing Social Framework";
    picture = @"http://www.stuarticus.com/wp-content/uploads/2012/08/SDKsmall.png";
    name = @"Social Framework";
    caption = @"Reference Documentation";
    description = @"The Social framework lets you integrate your app with supported social networking services. On iOS and OS X, this framework provides a template for creating HTTP requests. On iOS only, the Social framework provides a generalized interface for posting requests on behalf of the user.";

    NSDictionary *postDict = @{
    @"link": link,
    @"message" : message,
    @"picture" : picture,
    @"name" : name,
    @"caption" : caption,
    @"description" : description
    };

    SLRequest *postToMyWall = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:postURL parameters:postDict];

    FacebookAccountManager* sharedManager = [FacebookAccountManager sharedAccount];
    [postToMyWall setAccount:sharedManager.facebookAccount];

    [postToMyWall performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
    {
        if (error) {
            // If there is an error we populate the error string with error
            _errorString = [NSString stringWithFormat:@"%@", [error localizedDescription]];

            // We then perform the UI update on the main thread. All UI updates must be completed on the main thread.
            [self performSelectorOnMainThread:@selector(updateErrorString) withObject:nil waitUntilDone:NO];
        }

        else
        {
            NSLog(@"Post successful");
            NSString *dataString = [[NSString alloc] initWithData:responseData encoding:NSStringEncodingConversionAllowLossy];
            NSLog(@"Response Data: %@", dataString);
        }
     }];

    // Tidy Up
    link = nil;
    message = nil;
    picture = nil;
    name = nil;
    caption = nil;
    description = nil;
    postDict = nil;
    postToMyWall = nil;
    postURL = nil;

}

完全なウォークスルーについては、http://theworkingbear.com/social-framework-reference/を参照してください。

于 2012-11-12T20:05:03.113 に答える