除了使用feeddialogue之外,他们有什么办法在朋友墙上发布图片吗?

时间:2013-12-18 10:48:01

标签: android facebook

我正在使用feeddialogue将照片发布在朋友的墙上,但我不喜欢这种方式,他们是否可以通过其他方式在朋友墙上发布图片?我想发布像真正的Facebook应用程序的图像。

     Bundle params = new Bundle();
                            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", "url of image");
                            params.putString("to", "friendid");

                            WebDialog feedDialog = (
                                new WebDialog.FeedDialogBuilder(HelloFacebookSampleActivity.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(HelloFacebookSampleActivity.this,
                                                    "Posted story, id: "+postId,
                                                    Toast.LENGTH_SHORT).show();
                                            } else {
                                                // User clicked the Cancel button
                                                Toast.makeText(HelloFacebookSampleActivity.this, 
                                                    "Publish cancelled", 
                                                    Toast.LENGTH_SHORT).show();
                                            }
                                        } else if (error instanceof FacebookOperationCanceledException) {
                                            // User clicked the "x" button
                                            Toast.makeText(HelloFacebookSampleActivity.this, 
                                                "Publish cancelled", 
                                                Toast.LENGTH_SHORT).show();
                                        } else {
                                            // Generic, ex: network error
                                            Toast.makeText(HelloFacebookSampleActivity.this, 
                                                "Error posting story", 
                                                Toast.LENGTH_SHORT).show();
                                        }
                                    }

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

1 个答案:

答案 0 :(得分:0)

Here您可以阅读以下内容:

  

发布照片

     

要将照片发布到用户的相册,您必须拥有   publish_stream权限。有了这个,您就可以上传照片了   通过发布带有照片内容和可选项的HTTP POST请求   将这些描述转换为Graph API连接:

https://graph.facebook.com/USER_ID/photos - The photo will be published to an album created for your app. We automatically create an
     

您应用的相册(如果尚不存在)。所有照片上传   这种方式将被添加到同一张专辑中。

<?php
       $app_id = "YOUR_APP_ID";
       $app_secret = "YOUR_APP_SECRET";
       $post_login_url = "YOUR_POST_LOGIN_URL";

       $code = $_REQUEST["code"];

       //Obtain the access_token with publish_stream permission 
       if(empty($code)){ 
          $dialog_url= "http://www.facebook.com/dialog/oauth?"
           . "client_id=" .  $app_id 
           . "&redirect_uri=" . urlencode( $post_login_url)
           .  "&scope=publish_stream";
          echo("<script>top.location.href='" . $dialog_url 
          . "'</script>");
         }
        else {
          $token_url="https://graph.facebook.com/oauth/access_token?"
           . "client_id=" . $app_id 
           . "&redirect_uri=" . urlencode( $post_login_url)
           . "&client_secret=" . $app_secret
           . "&code=" . $code;
          $response = file_get_contents($token_url);
          $params = null;
          parse_str($response, $params);
          $access_token = $params['access_token'];

         // Show photo upload form to user and post to the Graph URL
         $graph_url= "https://graph.facebook.com/me/photos?"
         . "access_token=" .$access_token;

         echo '<html><body>';
         echo '<form enctype="multipart/form-data" action="'
         .$graph_url .' "method="POST">';
         echo 'Please choose a photo: ';
         echo '<input name="source" type="file"><br/><br/>';
         echo 'Say something about this photo: ';
         echo '<input name="message" 
             type="text" value=""><br/><br/>';
         echo '<input type="submit" value="Upload"/><br/>';
         echo '</form>';
         echo '</body></html>';
      }
?>