如何获取 Facebook 提要数据
how to get facebook feeds data
我正在尝试登录用户供稿,要么是显示在他的墙上的用户自己的供稿,要么是朋友显示的最新供稿。
我查看了所有文章和其他帖子,它们都使用旧程序获取被 Facebook 删除的提要。
现在我正在使用这种方法,但没有得到任何东西
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
parameters[@"access_token"] = [FBSDKAccessToken currentAccessToken].tokenString;
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/me/feed"
parameters:parameters
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
if (error) {
NSLog(@"%@",error);
}else{
// NSArray* posts = [result objectForKey:@"data"];
}
}];
请使用以下代码在 Facebook 上分享文本。
在您的按钮单击事件中调用以下方法。
- (void)shareOnFacebook{
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
if ([FBSDKAccessToken currentAccessToken] != nil)
{
NSDictionary *dict = @{@"message":sharingMsg};
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]initWithGraphPath:@"/me/feed" parameters:dict HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
if (error != nil)
NSLog(@"%@",error.localizedDescription);
else
NSLog(@"Success");
}];
}
else{
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager setLoginBehavior:FBSDKLoginBehaviorSystemAccount];
[loginManager logInWithReadPermissions:@[@"public_profile", @"email", @"user_friends"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
if (error)
[loginManager logOut];
else if (result.isCancelled)
[loginManager logOut];
else
{
if ([result.grantedPermissions containsObject:@"publish_actions"])
{
[self grantPermissionFromFB];
}
else
{
[loginManager logInWithPublishPermissions:@[@"publish_actions"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
if (error)
[loginManager logOut];
else if (result.isCancelled)
[loginManager logOut];
else
{
[self grantPermissionFromFB];
}
}];
}
}
}];
}
}
- (void)grantPermissionFromFB{
NSTimeInterval addTimeInterval = 60*60*24*365*50;
NSDate *expireDate = [[NSDate date] dateByAddingTimeInterval:addTimeInterval];
NSDate *refreshDate = [[NSDate date] dateByAddingTimeInterval:addTimeInterval];
FBSDKAccessToken *newAccessToken = [[FBSDKAccessToken alloc] initWithTokenString:[[FBSDKAccessToken currentAccessToken] tokenString] permissions:nil declinedPermissions:nil appID:facebookAppID userID:[[FBSDKAccessToken currentAccessToken] userID] expirationDate:expireDate refreshDate:refreshDate];
[FBSDKAccessToken setCurrentAccessToken:newAccessToken];
NSDictionary *dict = @{@"message":sharingMsg};
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]initWithGraphPath:@"/me/feed" parameters:dict HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
if (error != nil)
NSLog(@"%@",error.localizedDescription);
else
NSLog(@"Success");
}];
}
我正在尝试登录用户供稿,要么是显示在他的墙上的用户自己的供稿,要么是朋友显示的最新供稿。
我查看了所有文章和其他帖子,它们都使用旧程序获取被 Facebook 删除的提要。 现在我正在使用这种方法,但没有得到任何东西
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
parameters[@"access_token"] = [FBSDKAccessToken currentAccessToken].tokenString;
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/me/feed"
parameters:parameters
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
if (error) {
NSLog(@"%@",error);
}else{
// NSArray* posts = [result objectForKey:@"data"];
}
}];
请使用以下代码在 Facebook 上分享文本。 在您的按钮单击事件中调用以下方法。
- (void)shareOnFacebook{
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
if ([FBSDKAccessToken currentAccessToken] != nil)
{
NSDictionary *dict = @{@"message":sharingMsg};
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]initWithGraphPath:@"/me/feed" parameters:dict HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
if (error != nil)
NSLog(@"%@",error.localizedDescription);
else
NSLog(@"Success");
}];
}
else{
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager setLoginBehavior:FBSDKLoginBehaviorSystemAccount];
[loginManager logInWithReadPermissions:@[@"public_profile", @"email", @"user_friends"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
if (error)
[loginManager logOut];
else if (result.isCancelled)
[loginManager logOut];
else
{
if ([result.grantedPermissions containsObject:@"publish_actions"])
{
[self grantPermissionFromFB];
}
else
{
[loginManager logInWithPublishPermissions:@[@"publish_actions"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
if (error)
[loginManager logOut];
else if (result.isCancelled)
[loginManager logOut];
else
{
[self grantPermissionFromFB];
}
}];
}
}
}];
}
}
- (void)grantPermissionFromFB{
NSTimeInterval addTimeInterval = 60*60*24*365*50;
NSDate *expireDate = [[NSDate date] dateByAddingTimeInterval:addTimeInterval];
NSDate *refreshDate = [[NSDate date] dateByAddingTimeInterval:addTimeInterval];
FBSDKAccessToken *newAccessToken = [[FBSDKAccessToken alloc] initWithTokenString:[[FBSDKAccessToken currentAccessToken] tokenString] permissions:nil declinedPermissions:nil appID:facebookAppID userID:[[FBSDKAccessToken currentAccessToken] userID] expirationDate:expireDate refreshDate:refreshDate];
[FBSDKAccessToken setCurrentAccessToken:newAccessToken];
NSDictionary *dict = @{@"message":sharingMsg};
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]initWithGraphPath:@"/me/feed" parameters:dict HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
{
[MBProgressHUD hideHUDForView:self.view animated:YES];
if (error != nil)
NSLog(@"%@",error.localizedDescription);
else
NSLog(@"Success");
}];
}