アプリケーションからページのような機能を実装しようとしています。最新のものを追加Facebook SDK
し、すべてのデリゲートとハンドラーを実装して、アプリへのユーザー ログインのセッションとステータスを確認しました。ここまでは問題なく動作しています (サンプル コードでは既に実行されています)。とにかく、私は Facebook 開発者サイトから次のコードを見つけて、ページを気に入ったようですが、うまくいかないようです。
- (void) likeFacebookIndia
{
NSMutableDictionary<FBGraphObject> *action = [FBGraphObject graphObject];
action[@"object"] = @"http://www.facebook.com/FacebookIndia";
//action[@"object"] = @"FacebookIndia";
[FBRequestConnection startForPostWithGraphPath:@"me/og.likes"
graphObject:action
completionHandler:^ (FBRequestConnection *connection,
id result,
NSError *error)
{
// handle the result
if(error)
{
NSLog(@"%@",error.localizedDescription);
}
else
{
NSLog(@"%@",result);
}
}];
}
ログインに成功したら、上記の関数を呼び出していましたが、likeFacebookIndia
ブロック内の次のエラーが発生します。
操作を完了できませんでした。(com.facebook.sdk エラー 5.)
ここで、私の質問は、
これがページを気に入る正しい方法かどうかわかりません。
それが正しければ、私が本当に見逃しているのは何ですか?
他に方法はありますか?
私はすでにページにアクセスしましたが、ここではすでに多くの質問がありましたが、最新のアップデートで動作するものは1つもありませFacebookLikeView
ん. でページをいいねできましたが、それには多くの問題があります。FBLikeButton
Facebook SDK
FacebookLikeView
- ページのようにA
UIKeyBoard
が表示されます - ログインが必要な場合、Facebook ページの読み込みに時間がかかり、
- 同じページに 2 回目のいいねをすると、いいねのビューがどこかに消えます。
更新 Graph API Explorer で同じことをテストしたところ、次の結果が得られました。
{
"error": {
"message": "(#100) Like actions are not yet supported against objects of this type.",
"type": "OAuthException",
"code": 100
}
}
更新 2
私はFacebookLikeView
クラスにハッキングし、私が書いた上記の問題を解決しましたが、今はうまくいくはずですか? いいえ、機能していません。使用しFBConnect
ているのは時代遅れであり、Facebook SDK
うまく機能している他のものも最新です。FacebookLikeView 用の最新の SDK を使って新しいプロジェクトを作ってくれる人がいるといいです。【もう働いてる!】
これが私がやっている方法です、
//Calling this function in `viewDidLoad`
- (void) addLikeView
{
facebookLikeView.delegate = self;
facebookLikeView.href = [NSURL URLWithString:@"http://www.facebook.com/FacebookIndia"];
facebookLikeView.layout = @"button_count";
facebookLikeView.showFaces = NO;
facebookLikeView.alpha = 0;
[facebookLikeView load];
}
#pragma mark - Facebook Delegate
-(void)sessionDoneForPageShare:(FBSession *)session state:(FBSessionState)state error:(NSError *)error
{
if(error)
{
NSLog(@"error : %@",error);
}
else
{
[facebookLikeView load]; //In logged in or logged out, we've to call this
}
}
- (void)facebookViewControllerCancelWasPressed:(id)sender
{
NSLog(@"Login was cancelled by user");
}
- (void)facebookViewControllerDoneWasPressed:(id)sender
{
NSLog(@"User tapped done button on login view");
}
- (void) checkFBloggedInStatus
{
if (!FBSession.activeSession.isOpen)
{
NSArray *permissions = [NSArray array];
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceOnlyMe allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error){
[self sessionDoneForPageShare:session state:status error:error];}
];
}
}
#pragma mark FacebookLikeViewDelegate methods
- (void)facebookLikeViewRequiresLogin:(FacebookLikeView *)aFacebookLikeView {
[self checkFBloggedInStatus];
}
- (void)facebookLikeViewDidRender:(FacebookLikeView *)aFacebookLikeView {
[UIView beginAnimations:@"" context:nil];
[UIView setAnimationDelay:0.5];
facebookLikeView.alpha = 1;
[UIView commitAnimations];
}
- (void)facebookLikeViewDidLike:(FacebookLikeView *)aFacebookLikeView {
NSLog(@"liked");
}
- (void)facebookLikeViewDidUnlike:(FacebookLikeView *)aFacebookLikeView {
NSLog(@"unliked");
}
- (void)facebookLikeView:(FacebookLikeView *)aFacebookLikeView didFailLoadWithError:(NSError *)error
{
NSLog(@"FacebookLikeView error: %@",error);
}
これで、いいねボタンが表示され、ブラウザにログインできるようになりますが、何も起こりません! 毎回いいねボタンが表示されます!
これは古いSDKでうまく機能していましたがFBConnect
、問題は最新のものです。ここでFacebook SDK
見つけることができます。FacebookLikeView
私は何が欠けていますか?