0

現時点では、Facebook API と ASP.Net (MVC4) を使用しています。

Facebook ウォールに特定のメッセージを投稿し、そのメッセージを Web アプリケーションで受信することはできますか?

私はすでに次のコードを試しましたが、うまくいきません:

多分誰かが解決策を持っていますか?(また、ニュースフィードの投稿ではなく、プロフィールウォールの投稿が必要です)

JsonObject fbJsonFeedObj = (JsonObject)fbApp.Get(" https://graph.facebook.com/me/home?fields=from,message,name,picture&access_token=" + token);

string str = fbApp.Get("/me/feed").ToString();
JObject obj = JObject.Parse(str);
JToken jUser = obj["data"];
int numb = jUser.Count();

//Get latest post
int id_post = 0;
string stringMsg = obj["data"][id_post]["likes"].ToString();

更新: 個人の FB ウォールの最新の投稿を取得するメソッドが必要です。これを達成する方法は?

更新 2: 今日私が試した:

JsonObject fbJsonFeedObj = (JsonObject)fbApp.Get(" https://graph.facebook.com/ " + FacebookModel.TestFacebookID + "/feed?access_token=" + token);

このコードで最新の投稿を取得できますが、読み取り可能な文字列に分割するにはどうすればよいですか? では、投稿を送信した UserId と実際の (文字列) メッセージのみを取得しますか?

更新 3: 現時点では、このコードを使用して壁の投稿を取得しています。

  var wall = (JsonObject)fbApp.Get("/me/feed");

しかし、Visual Studio には次のエラーが表示されます。

現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります。

次のメソッドを使用して accesstoken を受け取ります。

 public static string GetAccessToken()
        {
            var fb = new FacebookClient();
            dynamic result = fb.Get("oauth/access_token", new
            {
                client_id = FACEBOOK_APP_ID,
                client_secret = FACEBOOK_SECRET,
                grant_type = "client_credentials"
            });
            return result.access_token;
        }

この問題を解決するには?

4

1 に答える 1

2

最初の問題は、 を使用していて、 を使用/homeしていなかったこと/feedです。

/home- ユーザーのニュース フィード。
/feed- ユーザーの壁。

https://developers.facebook.com/docs/reference/api/user/

/home前の ( ) オブジェクトで行ったのと同じ方法で分割できます

//Get latest post
int id_post = 0;
string stringPostId = obj["data"][id_post]["id"].ToString(); //Id of the post
string stringPostSender = obj["data"][id_post]["from"]["name"].ToString(); //Name of sender
string stringPostSenderId = obj["data"][id_post]["from"]["id"].ToString(); //ID of sender

各オブジェクトはこのように見えるので、ドリルダウンする方法を理解できるはずです

{
      "id": "5_11111111", 
      "to": {
        "data": [
          {
            "name": "User A", 
            "id": "4"
          }
        ]
      }, 
      "from": {
        "name": "User B", 
        "id": "5"
      }, 
      "message": "This is a test message", 
      "created_time": "2013-10-04T23:01:42+0000"
    }

前回の更新は、多くの初めての開発者が犯すよくある間違いです。

これらの呼び出しには、アプリケーションアクセス トークンを使用しないでください。OAuth 経由でユーザーアクセス トークンを付与するには、ログイン フローが必要です。

https://www.facebook.com/dialog/oauth?
    client_id={app-id}
   &redirect_uri={redirect-uri}

プロセスの説明については、https://developers.facebook.com/docs/facebook-login/login-flow-for-web-no-jssdk/を詳しくお読みください。

ログインの流れ

于 2013-10-08T11:26:07.653 に答える