2

Facebookの友達のウォールに投稿しようとしています。次の2つの方法を試しましたが、うまくいきません。

1.1。

//post on wall
NSMutableDictionary *variables = [[NSMutableDictionary alloc]initWithCapacity:1];
[variables setObject:@"v" forKey:@"message"];

[graphref doGraphPost:[NSString stringWithFormat:@"1389799421/feed"] withPostVars:variables];
//post on wall

2.2。

 [_facebook requestWithGraphPath:@"1389799421/feed"
                      andParams:[NSMutableDictionary dictionaryWithObject:@"test wall post" forKey:@"message"]
                  andHttpMethod:@"POST"
                    andDelegate:self];

...そして私は理由がわかりません!! FacebookのWebサイトに、バンドルと権限を追加しました。

4

2 に答える 2

2

Facebookの友達の壁に投稿しようとしています

Facebookは最近、開発者ブログで、APIを介して別のユーザーのウォールに投稿することは2013年2月以降は不可能になると発表しました

グラフAPIを介して友達の壁に投稿する機能を削除する

GraphAPIを介してユーザーの友達の壁に投稿する機能を削除します。具体的には、[user_id]がセッションユーザーと異なる[user_id] / feedに対する投稿、またはtarget_idユーザーがセッションユーザーと異なるstream.publish呼び出しは失敗します。ユーザーが友達のタイムラインに投稿できるようにする場合は、フィードダイアログを呼び出します。

ですから、今そのような機能を開発し始めるのはかなり役に立たないと思います。

于 2012-11-07T22:19:40.150 に答える
1

まず、公開権限でセッションを開く必要があります。publish_stream具体的には、許可を要求する必要があります。

NSArray * permissions = [[NSArray alloc] initWithObjects:@"publish_stream", nil];
return [FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
  [self sessionStateChanged:session
                      state:status
                      error:error];
}]; 

公開権限がある場合は、リクエストを作成して送信できます。パラメータの1つとしてを含めるようにしaccess_tokenてください。そうしないと、認証エラーが発生します。

NSDictionary * postParameters = [NSDictionary dictionaryWithObjectsAndKeys:_textView.text, @"message", FBSession.activeSession.accessToken, @"access_token", nil];
NSString * graphPath = @"ID_NUMBER_HERE/feed";
FBRequest * request = [FBRequest requestWithGraphPath:graphPath parameters:postParameters HTTPMethod:@"POST"];
[[request initWithSession:FBSession.activeSession graphPath:graphPath parameters:postParameters HTTPMethod:@"POST"] startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
  NSLog(@"Successful posted to Facebook");
  }];
}
于 2012-11-07T21:56:55.233 に答える