2

Facebook で写真やコメントに「いいね!」を付ける方法を知っています。しかし、私は自分のアプリを通じてFacebookページを気に入りたいと思っています。出来ますか?はいの場合、誰かが私にいくつかの提案をしてもらえますか?

4

3 に答える 3

3

これは問題です。これができれば、ユーザーがこれが起こっていることに必ずしも気付かなくても、プログラムでページを「いいね」することができます。それは Facebook の TOS に違反することになります。

アプリケーションに通常の「いいね」ボタンを配置し、ユーザーがクリックするかどうかを決定できるようにする方がよいと思います。

いくつかの関連記事 -

于 2013-04-22T09:04:34.780 に答える
1

メソッドで URL を指定することにより、ページを気に入っていただける呼び出しメソッドを作成しました。この方法では、facebook sdk を使用する必要があり、非推奨の facebook ファイルをいくつか追加する必要があります。

#import "Facebook.h"
#import "FBCustomLoginDialog.h"
#import "Accounts/Accounts.h"

そのファイルをどのように見つけて使用するかはあなた次第です。いずれにせよ、これはページのような作業コードです。

-(void)like
{
    NSString *likePage=@"http://in.yahoo.com/?p=us"; // here you page url

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   likePage, @"object",[[NSUserDefaults standardUserDefaults] valueForKey:@"token"],@"access_token",
                                   nil];

    [FBRequestConnection startWithGraphPath:@"/me/og.likes" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

        UIAlertView *alert=[[UIAlertView alloc] initWithTitle:nil message:[NSString stringWithFormat:@"liked with id %@",[result valueForKey:@"id"]] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [alert show];

        NSLog(@"result is %@",result);
    }];
}

- (IBAction)likepageonFB:(id)sender
{
    if ([[FBSession activeSession] isOpen]) {
        [self like];
    }else
    {
        [appDelegate openSession];
    }
}

アプリデリゲートファイルで使用されるコードは次のとおりです....

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[LikeAppViewController alloc] initWithNibName:@"LikeAppViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];


    if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
        // To-do, show logged in view
//         [self openSession];
    } else {
        // No, display the login page.
        [self showLoginView];
    }

    return YES;
}


#pragma mark- Facebook Methods

- (void)sessionStateChanged:(FBSession *)session
                      state:(FBSessionState) state
                      error:(NSError *)error
{
    switch (state) {
        case FBSessionStateOpen:
        {
            [[NSUserDefaults standardUserDefaults] setValue:[[FBSession activeSession] accessToken] forKey:@"token"];
            NSLog(@"token is %@",[[FBSession activeSession] accessToken]);
            [self.viewController like];
        }
            break;
        case FBSessionStateClosed:
        case FBSessionStateClosedLoginFailed:
            [self showLoginView];
            break;
        default:
            break;
    }

    if (error) {
        UIAlertView *alertView = [[UIAlertView alloc]
                                  initWithTitle:@"Error"
                                  message:error.localizedDescription
                                  delegate:nil
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:nil];
        [alertView show];
    }
}

- (void)openSession
{

    NSLog(@"open session called ");

    NSArray *permissions=[[NSArray alloc] initWithObjects:@"publish_stream",@"publish_actions",@"user_likes",@"user_about_me",nil];

    [FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES completionHandler:^(FBSession *session,
                                                                                                                                    FBSessionState state, NSError *error) {
        [self sessionStateChanged:session state:state error:error];
    }];
}

- (void)showLoginView
{
    [self.viewController presentedViewController];
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    return [FBSession.activeSession handleOpenURL:url];
}

- (void)fbDialogLogin:(NSString*)token expirationDate:(NSDate*)expirationDate
{
    NSLog(@"expiry date is %@",expirationDate);
}

このファイルFBCustomLoginDialog.hおよびFBCustomLoginDialog.mを使用します

于 2013-05-25T05:00:46.767 に答える