简体   繁体   English

使用iOS5和6的Facebook SDK将iPhone中的Facebook集成

[英]facebook integration in iphone with Facebook sdk for ios5 and 6

i have use FAcebook sdk 3.0 to integrate facebook.I have use sample code "HelloFacebookSample" to post status. 我已经使用FAcebook sdk 3.0集成了facebook。我已经使用示例代码“ HelloFacebookSample”来发布状态。 I have change in Info.plist file with my AppId. 我的AppId已更改Info.plist文件。 I have problem that show armv7s,armv7 architecture problem.I even solve out that by "Build Active Architecture Only "to YEs. 我遇到了显示armv7s,armv7体系结构问题的问题。我什至通过向YE“仅构建活动体系结构”来解决该问题。

I have code that show button for login/logout for facebook 我有显示用于Facebook登录/注销按钮的代码

#import "HFViewController.h"

#import "AppDelegate.h"
 #import <CoreLocation/CoreLocation.h>


 @interface HFViewController () <FBLoginViewDelegate>


 @property (strong, nonatomic) IBOutlet UIButton *buttonPostStatus;

 @property (strong, nonatomic) id<FBGraphUser> loggedInUser;

 - (IBAction)postStatusUpdateClick:(UIButton *)sender;


 - (void)showAlert:(NSString *)message
       result:(id)result
        error:(NSError *)error;


 @end

 @implementation HFViewController
 @synthesize shareStringFb;
 @synthesize buttonPostStatus = _buttonPostStatus;

 @synthesize loggedInUser = _loggedInUser;


 - (void)viewDidLoad {    
[super viewDidLoad];

// Create Login View so that the app will be granted "status_update" permission.
self.buttonPostStatus.enabled = YES;

FBLoginView *loginview = [[FBLoginView alloc] init];

loginview.frame = CGRectOffset(loginview.frame, 5, 5);
loginview.delegate = self;

[self.view addSubview:loginview];

[loginview sizeToFit];
statusText.text=self.shareStringFb;
{
    // if the session is closed, then we open it here, and establish a handler for state changes
}

} }

 -(IBAction)backClick:(id)sender
 {
[self.view removeFromSuperview];

 }

 - (void)viewDidUnload {

self.buttonPostStatus = nil;

self.loggedInUser = nil;

[super viewDidUnload];
 }



 - (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView {
// first get the buttons set for login mode

  self.buttonPostStatus.enabled = YES;

 }

 - (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
                        user:(id<FBGraphUser>)user {
// here we use helper properties of FBGraphUser to dot-through to first_name and
// id properties of the json response from the server; alternatively we could use
// NSDictionary methods such as objectForKey to get values from the my json object

 self.loggedInUser = user;
 }

 - (void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView {

   self.buttonPostStatus.enabled = NO;

  }

// Post Status Update button handler - (IBAction)postStatusUpdateClick:(UIButton *)sender { //发布状态更新按钮处理程序-(IBAction)postStatusUpdateClick:(UIButton *)sender {

// Post a status update to the user's feed via the Graph API, and display an alert view 
// with the results or an error.

 NSString *message = [NSString stringWithFormat:@"Updating %@'s status at %@", 
                     self.loggedInUser.first_name, [NSDate date]];

 [FBRequestConnection startForPostStatusUpdate:self.shareStringFb
                            completionHandler:^(FBRequestConnection *connection, id          result, NSError *error) {

                                [self showAlert:message result:result error:error];
                                self.buttonPostStatus.enabled = YES;
                            }];

self.buttonPostStatus.enabled = NO;       

} }

// Post Photo button handler //发布照片按钮处理程序

it show one button with login/logout in simulator but when i test in device it doesn't show that button. 它在模拟器中显示一个带有登录/注销的按钮,但是当我在设备中进行测试时,它不显示该按钮。

Please any one can tell me what is problem?Why it not show that?Is there any other way to integrate Fb in ios 5 and 6 both. 请问谁能告诉我问题是什么?为什么不显示呢?还有其他方法可以将Fb集成到ios 5和ios 6中吗?

    ViewController.h

    #import <FacebookSDK/FacebookSDK.h>

    {
     NSDictionary *dictionary;
        NSString *user_email;
        NSString *accessTokan;


        NSMutableDictionary *fb_dict;
    }


- (IBAction)btn_loginwithfacebook:(id)sender;
{

    if (!FBSession.activeSession.isOpen)
    {
        // if the session is closed, then we open it here, and establish a handler for state changes

        [FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *session,FBSessionState state, NSError *error)
         {
             if (error)
             {
                 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                 [alertView show];
             }
             else if(session.isOpen)
             {
                 [self btn_loginwithfacebook:sender];
             }

         }];

        return;
    }


    [FBRequestConnection startWithGraphPath:@"me" parameters:[NSDictionary dictionaryWithObject:@"picture,id,birthday,email,name,gender,username" forKey:@"fields"] HTTPMethod:@"GET" completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
     {
         if (!error)
         {
             if ([result isKindOfClass:[NSDictionary class]])
             {
                 //NSDictionary *dictionary;
                 if([result objectForKey:@"data"])
                     dictionary = (NSDictionary *)[(NSArray *)[result objectForKey:@"data"] objectAtIndex:0];
                 else
                     dictionary = (NSDictionary *)result;
                 //NSLog(@"dictionary : %@",dictionary);



                 user_email = [dictionary objectForKey:@"email"];
                 [dictionary retain];
                 //NSLog(@"%@",user_email);//
             }
         }
     }];
    accessTokan = [[[FBSession activeSession] accessTokenData] accessToken];
    //NSLog(@"%@",accessTokan);

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/me?access_token=%@",accessTokan]]];
    [request setHTTPMethod:@"GET"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    NSError *error;
    NSURLResponse *response;
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    NSString *str=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];

    //NSLog(@"%@",str);
    fb_dict = [str JSONValue];
    [str release];}

FacebookAppID ::370546396320150 URL types Item 0 URL Schemes Item 0 ::fb370546396320150 FacebookAppID :: 370370396320150 URL类型项目0 URL方案项目0 :: fb370546396320150

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM