как решить OAuthException: (# 100) - PullRequest
2 голосов
/ 25 марта 2012

Я использую свое недавно разработанное приложение fb для публикации на моей стене, и оно показывает следующую ошибку

Uncaught OAuthException: (# 100) URL-адрес изображения неправильно отформатирован, добавлен в

Вы также можете увидеть это непосредственно *https://apps.facebook.com/hack-proof_pages/1gp.html

, используя два файла "1gp.html" и "gp1.php"

1gp.html code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="gp1.php">
  <p>message
    <textarea style="width:300px; height:50px;" name="message1"></textarea>
</p>
  <p>link 
    <input type="text" style="width:300px;" name="link1" />
  </p>
  <p>
    Picture 
    <input type="text"  name="picture1" />
</p>
  <p>
    name 
    <input type="text" style="width:300px;" name="name1" />
</p>
  <p>
    Caption
    <input type="text" style="width:300px;" name="caption1" />
</p>
  <p>Description
    <textarea style="width:300px; height:50px;" name="description1"></textarea>
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit" />
  </p>
</form>
</body>
</html>

код gp1.php

<?php 

require_once 'library/facebook.php';

// Create our Application instance.
$facebook = new Facebook(array(
  'appId' => '149865361795547',
  'secret' => 'shhhh seceret :)',
  'cookie' => true,
)); 

     $app_id = '149865361795547';

     $canvas_page = "https://apps.facebook.com/hack-proof_pages/gp1.php";


     //get data for post

     $message1 = $_POST['message1'];
     $picture1 = $_POST['picture1'];
     $name1 = $_POST['name1'];
     $link1  = $_POST['link1'];
     $caption1 =  $_POST['caption1'];
     $description1  = $_POST['description1'];

     // compile the post for for user
    $WallPost = array(
        'message' => $message1,
'link' => $link1,
'picture' => $picture1,
'name' => $name1,
'caption' => $caption1);  // you can also use 'picture', 'link', 'name', 'caption', 'description', 'source'.... 
    //http://developers.facebook.com/docs/reference/api/


         $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
            . $app_id . "&redirect_uri=" . urlencode($canvas_page) . ("&scope=email,read_stream,publish_stream,offline_access,publish_actions,manage_pages,user_groups&response_type=token");

     $signed_request = $_REQUEST["signed_request"];

     list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

     $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

     if (empty($data["user_id"])) {
            echo("<script> top.location.href='" . $auth_url . "'</script>");
     } else {

     //getting the userid and some other data for verification 

     //get the user id 
            $UserId = $data["user_id"];
            echo 'UserId;' . $UserId;

    //get the user access token
            $atoken = $facebook->getAccessToken();
            echo "</br>" . 'User Access_Token:' . $atoken;

    //set default access token and profile
            //$facebook->setAccessToken($atoken);
            //$user_profile = $facebook->api('/me');

     //get the user name and email
            $user_id = $facebook->getUser();
            $user_profile = $facebook->api('/me','GET');
            $user_name = $user_profile['name'];
            echo "Name: " . $user_name;
            $user_email = $user_profile['email'];
            echo "email: " . $user_email;

    // post to user wall
            $response = $facebook->api('/me' . '/feed','POST',$WallPost);


    //posting to groups wall with sleeping time support poster.xls


} 
?>

* Примечание: мое приложение использует самозаверяющий сертификат SSL, так что если вы хотите проверить этот URL-адрес выше, вам нужночтобы разрешить моему сайту и хранить его сертификат и еще одну информацию, которая иногда показывает, что Google Chrome выдает ошибку из-за Google Chrome, есть одно слабое место, которое требуется Chrome для хранения самозаверяющего сертификата в Internet Explorer. Это означает, что если вы хотите проверить это в Chrome, вам нужно сначала открытьэтот сайт в Internet Explorer и разрешить моему сайту самозаверяющий сертификат и хранить его постоянно, чтобы он также работал в chrome

1 Ответ

0 голосов
/ 23 мая 2012

Пожалуйста, проверьте URL-адрес вашей фотографии, вам нужно указать полный URL-адрес фотографии, а не относительный URL-адрес, и Facebook должен иметь возможность доступа к URL-адресу изображения, т. Е. Он не должен относиться к вашему локальному приложению, попробуйте разместить полностью Пример URL любой картинки в вашем коде и проверьте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...