2011-11-17 7 views
1

現在、壁にメッセージを投稿するために、iOSのネイティブアプリをFacebookページに接続しています。私は壁にアクセスすることができますが、何らかの理由でメッセージテキストが設定されていません。私はユーザーに 'publish_stream'権限を尋ねました。publish_stream権限を持つiOSからページを投稿する

私が間違っていることを知っていますか?

NSMutableDictionary *message = [NSDictionary dictionaryWithObjectsAndKeys:@"some text", @"message", @"http://path/to/itunes/", @"link", nil]; 

NSString *changeJSON = [message JSONRepresentation]; 

NSLog(@"changeJSON: %@", changeJSON); 

NSData *myPostData = [changeJSON dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *myURL = [NSString stringWithFormat:@"https://graph.facebook.com/pageId/feed?access_token=%@", facebook.accessToken]; 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:myURL] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10.0]; 

[request setHTTPMethod:@"POST"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:[NSString stringWithFormat:@"%d", [myPostData length] ] forHTTPHeaderField:@"Content-Length"]; 
[request setHTTPBody: myPostData]; 

NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil ]; 
NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding]; 

NSLog(@"return string: %@", returnString); 

[facebook logout:self]; 

NSDataオブジェクトにエンコードされた文字列は以下の通りである:

{"message":"some text","link":"http://path/to/itunes/"} 

おかげで、それがどのように見える


答えて

1

:-)良い一日を持ってここに私のコードですあなたはJSAPをGraphAPIに投稿しようとしていますか?その場合は、JSONをFacebookに投稿することはできませんが、代わりに投稿時にパラメータを使用する必要があります(クエリ文字列またはHTTPリクエストパラメータのいずれか)。

すべての送信アクションは、パラメータを含むHTTP POSTによって行われ、すべての応答はJSONで行われます。 Graph API reference under publishingで詳細を読むことができます。

参照:POST Reference

+0

ありがとう、それは解決策です。私の間違いは今それが魅力のように働いています:-) – MrBr

関連する問題