2013-04-23 1 views
4

내 앱은 생년월일로 정렬 된 친구의 맞춤 목록보기를 생성합니다. 그래서 SELECT name, uid, pic_square, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) order by birthday_date을 사용했습니다.Android : Facebook 3.0 FQL 요청 응답을 사용하여 친구 벽에 올리기 (Apr23,2013 기준)

사용자가 친구를 클릭하면 (listview에서) 사용자가 해당 친구의 담벼락에 게시 할 것인지 묻습니다. 나는 옛날 방식대로하는 법을 알고 있지만, How to send a post to Facebook friend's wall android SDK 3.0 때문에 혼란스러워진다. 그 질문에

:

안드로이드에 대한 페이스 북 SDK를 사용하면 사용자의 타임 라인 앱의 이야기를 게시 할 수 있도록하는 방법을 제공한다. 이 메소드를 사용하여 사용자를 대신하여 상태 업데이트를 게시 할 수도 있습니다. 이 방법은 그래프 API 사용하고, 사료도

대화

http://developers.facebook.com/docs/howtos/androidsdk/3.0/publish-to-feed/

사용에 대한 대안 :

친구의 벽에 게시 그래프-API를 사용하지 않습니다를. 2012 년 2 월 6 일 이후에 사용 중지되었으므로 FB는 친구 나 자신의 벽에 게시 할 때 Feed Dialog를 사용하는 것이 좋습니다. 이것은 Feed Dialog를 사용하는 방법에 대한 링크입니다. http://developers.facebook.com/docs/howtos/androidsdk/3.0/feed-dialog

두 링크를 모두 보았지만 둘 다 자신의 벽에 게시하는 방법 만 보여줍니다. 누구든지 나를 좋은 최신 예 또는 적어도, 페이스 북의 안드로이드 SDK 3.x를 통해 FQL 요청 응답을 사용하여 친구의 벽에 게시하는 방법에 대한 올바른 방향을 가르쳐 주시겠습니까 (현재 3.02b 버전입니다)?

답변

3

해결책을 찾았습니다. "to"및 "from"매개 변수 만 추가하면됩니다.

하나의 친구 벽에 게시 : 많은 친구

private void publishFeedDialog(String friend_uid) { 
     Session session = Session.getActiveSession(); 
     if (!hasPublishPermission()) { 
      // We don't have the permission to post yet. 
      session.requestNewPublishPermissions(new Session.NewPermissionsRequest(this, WRITE_PERMISSION)); 
     } 
     if (user != null && friend_uid != null && hasPublishPermission()) { 

      final Activity activity = this; 
      Bundle params = new Bundle(); 
      //This is what you need to post to a friend's wall 
      params.putString("from", "" + user.getId()); 
      params.putString("to", friend_uid); 
      //up to this 
      params.putString("name", "Facebook SDK for Android"); 
      params.putString("caption", "Build great social apps and get more installs."); 
      params.putString("description", "The Facebook SDK for Android makes it easier and faster to develop Facebook integrated Android apps."); 
      params.putString("link", "https://developers.facebook.com/android"); 
      params.putString("picture", "https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png"); 
      WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(this, Session.getActiveSession(), params)) 
        .setOnCompleteListener(new OnCompleteListener() { 

        @Override 
        public void onComplete(Bundle values, FacebookException error) { 
         if (error == null) { 
          // When the story is posted, echo the success 
          // and the post Id. 
          final String postId = values.getString("post_id"); 
          if (postId != null) { 
           Toast.makeText(activity, 
            "Posted story, id: "+postId, 
            Toast.LENGTH_SHORT).show(); 
          } else { 
           // User clicked the Cancel button 
           Toast.makeText(activity, 
            "Publish cancelled", 
            Toast.LENGTH_SHORT).show(); 
          } 
         } else if (error instanceof FacebookOperationCanceledException) { 
          // User clicked the "x" button 
          Toast.makeText(activity, 
           "Publish cancelled", 
           Toast.LENGTH_SHORT).show(); 
         } else { 
          // Generic, ex: network error 
          Toast.makeText(activity, 
           "Error posting story", 
           Toast.LENGTH_SHORT).show(); 
         } 
        } 

       }).build(); 
      feedDialog.show(); 
     } 
    } 

벽 게시 : 다음은 내 샘플입니다 대신 FeedDialogBuilder의

RequestsDialogBuilder 두 번째 때문 만 매개 변수에 여러 개의 ID를 허용하는 반면, 첫 번째 매개 변수는 많은 수를 수신 할 수 있지만 (제한에 대해서는 확실하지 않지만 약 50이라고 생각합니다.)

크레딧 : gian1200

+0

하지만 많은 친구들에게 똑같은 것을 보내고 싶다면 어떻게해야합니까? 내가 아는 한, "to"매개 변수는 1 개의 id만을 허용합니다. 유일한 해결 방법은 "for"를 사용하여 각 친구에 대한 요청을 만드는 것입니다 (이는 나에게 잘못된 것 같습니다). – gian1200

+0

아직 시도하지 않았습니다. 죄송합니다. 지금 당장 프로젝트에 빠져 있습니다. 시간이 있다면 해결책을 찾으려고 노력할 것입니다. 그러나 만약 당신이 나에게 묻는다면,이 일을 할 수있는 기능이 없다면 벽에 글을 올려 놓고 친구들에게 태그를 달아서 루프를 만드는 것보다 더 좋은 해결책이라고 제안 할 것입니다. – Marl

+2

답변 해 주셔서 감사합니다. 그러나 두 번째 하나만 매개 변수에 여러 ID를 허용하기 때문에 첫 번째 하나를 많이받을 수 있지만 (제한에 대해 확실하지 않지만 내가 생각하는 약 50), FeedDialogBuilder 대신 RequestsDialogBuilder를 사용하여 할 관리 " . – gian1200

0

가능한 중복 ... 난 당신이 데모 FB 업데이트 Facebook - Post to wall from Android application

을 제공하는 확인해야한다고 생각 :

음이있다. http://developers.facebook.com/docs/howtos/androidsdk/3.0/publish-to-feed/

실제로 피드를 사용하는 것이 좋습니다. 그것을 확인하십시오.

+0

Nope. 내가 필요한 것은 친구의 벽에 게시하는 것입니다. FB SDK 3.x를 사용하여 그 예를 찾을 수 없습니다. – Marl