iOS: использование ShareKit 2.0 для доступа к Facebook.Нужно установить ограничение на алкоголь для приложения - PullRequest
2 голосов
/ 08 января 2012

Я разрабатываю приложение для iOS для компании, связанной с алкоголем. Приложение является своего рода поиском сокровищ, своего рода. Они хотят, чтобы пользователь приложения мог загружать их в Facebook, когда обнаружил один из виртуальных объектов, которые они разбросали по всему.

Я использую ShareKit 2.0 (ответвление от github) для доступа к Facebook.

Мне нужно пометить приложение как ограниченное типом алкоголя. Можно ли это сделать один раз на сайте разработчика Facebook для приложения или приложение должно делать это при каждом входе в систему?

Я нашел

http://developers.facebook.com/docs/reference/rest/admin.setRestrictionInfo/

В тестовой консоли я установил приложение для моего приложения во всплывающем окне и вставил

{"type":"alcohol"}.

Но я получаю сообщение об ошибке, которое мне кажется странным, так как запрос показывает access_token

{
  "error_code": 15,
  "error_msg": "This method must be called with an app access_token.",
  "request_args": [
    {
      "key": "restriction_str",
      "value": " {"type":"alcohol"}."
    },
    {
      "key": "method",
      "value": "admin.setRestrictionInfo"
    },
    {
      "key": "access_token",
      "value": "AAAC9ngVeKI4BAMkOq14ogA3fKMS6 -- blah blah -- ZCqK5LR"
    },
    {
      "key": "format",
      "value": "json"
    }
  ]
}

Я не уверен, как это нужно сделать.

ETA: так я нашел это: http://developers.facebook.com/docs/reference/api/application/#restrictions

и это:

http://developers.facebook.com/blog/post/574

И я попытался выполнить это, используя мой appID и access_token, которые я получил через браузер, и я вернулся

{
   "error": {
      "message": "(#15) This method is not supported for native apps",
      "type": "OAuthException"
   }
}

Приложение является нативным приложением (iOS также будет иметь версию для Android). Так что я до сих пор не уверен, как установить флаг ограничения типа = алкоголь для этого приложения.

ETA v2: поэтому я временно отказался от обозначения родного приложения и сделал следующее

https://graph.facebook.com/MYAPPID?restrictions={"type":"alcohol"}&method=post&access_token=MYAPPID|MYACCESSTOKEN

Когда я впервые сделал это ранее сегодня, я получил сообщение об ошибке формата. Но я просто переделал (тот же запрос все еще в браузере), и он, кажется, работает. Запрос на ограничение показывает алкоголь.

Так что я думаю, это установлено, сделано и работает. Однако, если я перезагружу приложение, чтобы оно стало «нативным», оно стирает настройки. Но если я оставлю это веб-приложение в настройках разработчика на Facebook, оно, похоже, останется, и мое приложение для iOS все еще сможет отправлять сообщения.

Это так, как это должно работать, или есть лучший способ?

...