Ошибка при отправке уведомлений, созданных приложением [Метод не реализован Неверный метод в запросе] - PullRequest
0 голосов
/ 24 октября 2011

Я пытаюсь отправить сгенерированные приложением уведомления пользователям моего приложения, используя код:

$app_id = MY_APP_ID;
$app_secret = MY_APP_SECRET;

$token_url = "https://graph.facebook.com/oauth/access_token?" .
    "client_id=" . $app_id .
    "&client_secret=" . $app_secret .
    "&grant_type=client_credentials";

$app_access_token = file_get_contents($token_url);

$user_id = SOME_USER_ID;

$apprequest_url ="https://graph.facebook.com/" .
    $user_id .
    "/apprequests?message='a message'" . 
    "&data='some_data'&"  .   
    $app_access_token . "&method=post";

$result = file_get_contents($apprequest_url);

var_dump($result);

Аутентификация пользователя в порядке, также я получаю действительный токен доступа, но когда я звоню

$result = file_get_contents($apprequest_url);

Ответ, который я получаю:

Method Not Implemented
Invalid method in request

Есть идеи, что может произойти?Если я добавлю URL в браузер, он будет работать нормально, и я сгенерирую уведомление.

Заранее спасибо

1 Ответ

0 голосов
/ 25 октября 2011

Я обнаружил ошибку при отправке уведомлений ... Это немного глупо, но проблема заключалась в том, что я пытался вставить пробелы в строку сообщения, которую использовал для вызова API. Я имею в виду, это будет работать, заменив '' на '% 20'. Я также попытался безуспешно кодировать сообщение ранее с

utf8_encode($message)

Но это не сработало. Поэтому решение для меня заключалось в прямой замене пробелов в моей строке, это не элегантное решение. Но я потратил около 10 часов на это, так что ...

* 1006 Т.е. *

"/apprequests?message='a message'" . 

заменено на:

"/apprequests?message='a%20message'" .

Я надеюсь, что это поможет кому-то еще, и время, потраченное на создание тысячи тестов, не было потрачено зря xD

...