1

Facebook の投稿にいいね! を付けたいのですが、post_id を持っていますが、IOS SDK の Facebook 開発者ページから特定の投稿をいいね! するための FQL クエリを見つけることができません。

Facebook 開発者ページから、HTTP POST メソッドを使用して投稿にいいねできると書かれていますが、GraphAPI や fql.query を使用して投稿にいいねを付けることはできません。

HTTP POST URL を共有して、Facebook の投稿に「いいね!」を付けてください。

は、iOS のカスタム ボタンを使用して Facebook 投稿のいいね ボタン機能を開発する人です。

前もって感謝します。

4

3 に答える 3

2

iOSでFacebookSDKを使用している場合の例を次に示します。

[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"%@/likes", post_id]
                             parameters:[NSDictionary dictionary]
                             HTTPMethod:@"POST"
                      completionHandler:^(FBRequestConnection *connection,
                                          id result,
                                          NSError *error) 
                          {
                              if (error)
                              {
                                  NSLog(@"Error: %@", [error localizedDescription]);
                              }
                              else
                              {
                                  NSLog(@"Result: %@", result);           
                              }
                          }];
于 2013-02-27T13:04:10.907 に答える
1

HTTP POST URLのフィールド(パラメーター)を要求しているようです。HTTP POSTリクエストには、(通常) 、URLのスクリプト名の後に?param1 = value&param2 =valueなどの従来のGETリクエストで渡すときに慣れているパラメータが含まれていません。

POSTリクエストは、メッセージ本文内のサーバーにデータを送信します。チェックアウトしてください:http://en.wikipedia.org/wiki/POST_(HTTP)

あなたがそれを知ったので、これはあなたができることです:

従来のGETリクエスト(任意のWebブラウザに貼り付けて応答を取得できるURL)を使用して、いいねの数を取得できます。次に例を示します。

https://graph.facebook.com/260895413924000_605362559477282/likes?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

このURLは、その投稿/写真を気に入ったすべての人に返信します。

投稿/写真が公開されていることがわかっている場合は、?access_token = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxを省略できます(https://www.facebook.com/photo.php?fbid=605362542810617&set=a.260905783922963.82517.260895413924000)。そうでない場合は、実際のaccess_tokenを1つ生成する必要があり(投稿する場合も生成する必要があります)、テストするには、https ://developers.facebook.com/tools/explorer/で実行できます。

写真を実際に気に入ってもらいたい場合は、ブラウザ内でコピー/貼り付けできるURLを単純に作成することはできません。これにより、同様のアクションがトリガーされます。これは、ブラウザがPOSTリクエストを実行しないため、Ivo Patrick Tudor Weissが提案したようにコードを介して実行する必要があります。または、テスト目的で、次のようにコンソールからcurlユーティリティを使用して実行できます。

curl --data "access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" https://graph.facebook.com/260895413924005362559477282/likes 

そして、あなたはHTTP DELETEで同様のものを元に戻すことができます...このように:

curl --data "access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -X DELETE https://graph.facebook.com/260895413924000_605362559477282/likes

-更新、コメントでOPによって行われた追加の質問:

もちろん、ASIHTTPRequestを使用してGET、POST、およびDELETEHTTP要求を作成することは可能です。ただし、あなたの場合にそのライブラリを使用することはお勧めしません。1つの理由は、ASIHTTPRequestの作成者がライブラリでの作業を停止したことです。もう1つの理由は、Facebook SDK for iOSが他の多くのことをすでに処理しているため、より良い選択であるということです。ここで言われていることは例です:

まず、必要に応じて、次の3つの組み合わせのいずれかを入力します。

特定の投稿を気に入ったすべての人を取得します:(
簡単にするために、ここではaccess_tokenを省略しましたが、必要に応じてURLに追加できます)

NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/260895413924000_605362559477282/likes"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

あなた自身の特定の投稿のように:

NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/260895413924000_605362559477282/likes"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request appendPostData:[@"access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" dataUsingEncoding:NSUTF8StringEncoding]];
//[request setRequestMethod:@"POST"]; // <--- NOT NEEDED since it is the default if you previously called appendPostData

投稿とは異なり:

NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/260895413924000_605362559477282/likes"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request appendPostData:[@"access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" dataUsingEncoding:NSUTF8StringEncoding]];
[request buildPostBody];
[request setRequestMethod:@"DELETE"];

次に、実際のリクエストを実行します。

[request startSynchronous];
NSString *response = [request responseString];
NSLog(@"Response: %@", response);

同期リクエストはテストには問題ありませんが、実際のアプリのメインスレッドで使用すると、GUIが応答しなくなることを覚えておいてください。ここで非同期リクエストを実行する方法を学びます:http://allseeing-i.com/ASIHTTPRequest/How-to-use

iOSの例として。ここにすべてのコードを書くのは多すぎるでしょう。そして、あなたはすでにIvo PatrickTudorWeissから完全に正しい答えを得ています。欠落しているのは、Facebookで認証してFBSessionを確立するために必要な定型コードだけです。

ここでこの資料を確認することをお勧めします:https ://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/

サンプルコードも含まれている最新のSDKをダウンロードし、FacebookWebのチュートリアルに従ってください。次に、基本を構成したら、Ivoから得た答えに戻ります。

于 2013-02-27T16:08:13.567 に答える
0

Graph API を使用して、いいね! を Facebook の投稿に投稿できます。ここのドキュメントで述べたように: http://developers.facebook.com/docs/reference/api/post/

like を作成するには、権限のある接続にHTTP POSTリクエストを発行する必要があります。の値を持つパラメーターを渡すことで、投稿を気に入ったときに作成される通知を抑制することができます。POST_ID/likespublish_streamnotifyfalse

于 2013-02-27T11:27:40.457 に答える