Coder Social home page Coder Social logo

ok-unity3d-sdk's Introduction

This library is deprecated:

Odnoklassniki Unity SDK

This SDK allows you to connect your Unity Android and iOS with Odnoklassniki.

Note: This version Odnoklassniki Unity SDK only supports Unity 5.X+. Check unity4x branch for older version support

Application Requirements

An application registered within OK platform should have:

  1. Target platform checked (like ANDROID or IOS)
  2. EXTERNAL platform checked
  3. Client OAUTH checkbox checked
  4. A VALUABLE_ACCESS permission being checked or requested
  5. (recommended) LONG_ACCESS_TOKEN permission requested from api-support in order to be able to use tokens with long ttl
  6. A redirect url configured in application settings including okauth://ok12345 where 12345 is your application id on OK platform

Setup

  1. Fill in application parameters in OdnoklassnikiSettings.asset
  2. Add the following entries to your android.manifest
  • within application tag
<activity android:name="ru.odnoklassniki.unity.OKAndroidPlugin"
    android:label="@string/app_name"
    android:hardwareAccelerated="true"
    android:windowSoftInputMode="adjustResize"
    android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    <intent-filter>
        <data android:scheme="okauth" android:host="INSERT_OK_APPLICATION_ID" />
    </intent-filter>
    <meta-data android:name="android.app.lib_name" android:value="unity" />
    <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
</activity>
<activity android:name="ru.odnoklassniki.unity.webview.OKWVActivity"
    android:label="@string/app_name"
    android:hardwareAccelerated="true"
    android:windowSoftInputMode="adjustResize"
    android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    <meta-data android:name="android.app.lib_name" android:value="unity" />
    <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
</activity>

where INSERT_OK_APPLICATION_ID should be in format: ok1234567890

  • within manifest tag
<activity android:name="ru.odnoklassniki.unity.auth.AppAuthorization"/>

Initialization

OK.Init(success =>
{
    if (success) {
        //Proceed to authorization
    }
});

Authorization

OK.Auth(success =>
{
    if (success) {
        //Authorization successful, you can now use Odnoklassniki API
    }
});

There are 2 types of authorization based on whether native Odnoklassniki application (AppStore / Google Play) is installed: authorization via native application & authorization via webview.

Once authorized, you will receive an access token lasting for 30 minutes

OK.AccessToken

If you authorized via native Odnoklassniki application, you will also receive refresh token lasting for 30 days, which can be used to revalidate access token

OK.IsRefreshTokenValid

You need to take care of refreshing the access token

if (OK.isInitialized && OK.AccessTokenExpiresAt < DateTime.Now) {
    if (OK.IsRefreshTokenValid) {
        OK.RefreshAccessToken(success =>
        {
            //Token refreshed
        });
    } else {
        OK.RefreshOAuth(success => {
            //Token refreshed
        }
    }
}

Using widgets

Invite Widget

OK.OpenInviteDialog(response => {
    //Will be called after Invite API call
}, "Invite Message");

Suggest Widget

OK.OpenSuggestDialog(response => {
    //Will be called after Suggest API call
}, "Suggest Message");

Photo Upload Widget

OK.OpenPhotoDialog(response => {
    //Will be called after Upload API call
}, texture, "Description");

Publish Widget

OK.OpenPublishDialog(response => {
    //Will be called after Publish API call
	}, new List<OKMedia>()
	{
		OKMedia.Photo(texture),
		OKMedia.Text("Description")
	});

Handling errors

response => {
    if (response.Object != null && response.Object.ContainsKey("error_code")) {
        string errorCode = response.Object["error_code"].ToString();
        string errorMessage = response.Object["error_msg"].ToString();
        //Debug.Log or show alert?
    } else {
        //Success
    }
}

F.A.Q.

Is there a convenient way to see if Odnoklassniki widget is shown?

OKWidgets.HasActiveWidget() method does that.

How can I select specific canvas for widgets if I am using multiple canvases?

You can explicitly specify canvas to use with OKWidgets.canvas

ok-unity3d-sdk's People

Contributors

43ishere avatar dmitry-grytsovets avatar lintax avatar raamon avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ok-unity3d-sdk's Issues

Namespaces

Многие классы в библиотеке odnoklassniki_unity4.dll зарегестрированы в глобале, что мешает интегрировать другие SDK.
В частности:
Localization
JSON
Friend
Просьба прописать для них свои неймспейсы.

OK.OpenInviteDialog в колбэке не присылает данные о пользователях, которым были отправлены инвайты

https://toster.ru/q/355963

  1. Вызываю OK.OpenInviteDialog на Android 6.0.
  2. В окне инвайта выбираю пользователя, которому хочу послать инвайт.
  3. Нажимаю послать.
  4. В ответе приходит только {"count":1}.

Причем если я приглашаю другого пользователя, то приходит {"count":0}

Как сделать чтоб приходили ids выбранных пользователей?

Игра делается на Unity 5.4.1f1
Odnoklassniki SDK version 1.0.21

Получение LONG_ACCESS_TOKEN

Не возможно получение LONG_ACCESS_TOKEN. Во-первых его нет в OKScope, из-за чего даже нет возможности запросить этот пермишенн. Во-вторых в классе AndroidOdnoklassniki в методе SSOAuthSuccessAndroid не реализована возможность того, что в ответе придет параметр expires_in. Там просто выставляется какое-то константрное значение:
AccessTokenExpiresAt = DefaultAccessTokenExpires();
RefreshTokenExpiresAt = DefaultRefreshTokenExpires();

Нет возможности опубликовать гиперссылку

Так как OKMedia не поддерживает гиперссылки, нет возможности опубликовать какое-то событие. Из описания метода из API https://apiok.ru/wiki/display/api/mediatopic.post+ru видно, что публиковать можно, если отправить правильный attachment. В реализации OKMedia я увидел, что поддерживаются только text, photo и poll.

В частности у нас не получилось проделать такой кейс:
Игрок достиг чего-то в игре
Поздравляем его и предлагаем рассказать друзьям
Игрок соглашается
На стене у игрока появляется текст+картинка(при нажатии на которую пользователь отправится в группу игры)

Максимум что получается, так это загрузить картинку игроку в альбом.

Разные результаты попытки логина через нативное приложение при разных способах отмены

Если при открытии окна логина через нативное приложение нажать кнопку "Назад" на андроид-устройстве, то результат логина "cancelled: true", а если в том же диалоге нажать кнопку "Отменить" на виджете, то результат "cancelled: false", хотя по сути и то, и то - это отмена, cancel.

Из-за этого когда игрок уже вроде как отказался логиниться, нажав "Отменить", он всё равно видит ещё одно окно логина, только теперь веб-виджет.

Не отображаются оповещения (sdk.sendNote)

OUT -> https://api.odnoklassniki.ru/fb.do?access_token=tkn1swKmOjDlC3O3H0z3kkNO8LcTypUomARGvNgr5ZP1eLgNuRL7fjFoNUbn4yE******&sig=9152fbc3195f7280fd33249f8e******&application_key=CBAGELFLEBA******&format=JSON&method=sdk.getNotes&platform=ANDROID&sdkToken=%24a%24b%3a1L%2c%22%22pD863k7%22%22S3h5tO7xSs%22SUi%22T0IT%2cDWKCE%3a%2c38SrLG%22_B1bfYnbMvkb%22px%7bH9%22%3adP%22%22%2255W%******

IN www <- {"notes":[]}

OUT -> https://api.odnoklassniki.ru/fb.do?access_token=tkn1swKmOjDlC3O3H0z3kkNO8LcTypUomARGvNgr5ZP1eLgNuRL7fjFoNUbn4yE******&sig=9ba4634743f13b437e50447dd7******&application_key=CBAGELFLEBA******&format=JSON&method=sdk.resetNotes&platform=ANDROID&sdkToken=%24a%24b%3a1L%2c%22%22pD863k7%22%22S3h5tO7xSs%22SUi%22T0IT%2cDWKCE%3a%2c38SrLG%22_B1bfYnbMvkb%22px%7bH9%22%3adP%22%22%2255W%******&timestamp=636039215390300540

IN www <- {"count":0}

OUT -> https://api.odnoklassniki.ru/fb.do?access_token=tkn1swKmOjDlC3O3H0z3kkNO8LcTypUomARGvNgr5ZP1eLgNuRL7fjFoNUbn4yE******&sig=3566bd345de01a39f2c5c02834******&application_key=CBAGELFLEBA******&format=JSON&method=sdk.sendNote&note=%7b%22uid%22%3a%2223652******%22%2c%22image%22%3a%22http%3a%2f%2f***.***.***.***%2fimages%2fIcon-180.png%22%2c%22message%22%3a%22*some_text%22%2c%22payload%22%3a%22%22%7d&platform=ANDROID&sdkToken=%24a%24b%3a1L%2c%22%22pD863k7%22%22S3h5tO7xSs%22SUi%22T0IT%2cDWKCE%3a%2c38SrLG%22_B1bfYnbMvkb%22px%7bH9%22%3adP%22%22%2255W%******

IN www <- {"count":1}

Последнее говорит о том, что нотификация отправилась удачно (из дока http://joxi.ru/p27WeVoi0VGOM2), но по факту юзер ее не видит

На всякий случай добавили юзера, которому отправляли нотификацию в девелоперы приложения и оповещения о приглашениях у него включены. У него платформа IOS, а пытались отправить нотификацию с Android.

getNotes даже при не первой попытке ничего не возвращает, как и видно из логов выше.

resetNotes говорит, что ноль очищенных нотификаций, хотя в timestamp шлем текущее значение тиков (c# DateTime.Now.Ticks) https://msdn.microsoft.com/ru-ru/library/system.datetime.ticks(v=vs.110).aspx

Проблема с публикацией.

var media = new List()
{
OKMedia.App(text, "http://www.iron5.com/images/banner_01.png", "prize", title, "Iron 5: Tank Battles", "Iron 5: Tank Battles")
};
OK.OpenPublishDialog(PublishCallback, media);

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

Проблема с перенаправлением из WebView на iOS

Добрый день, использую в проекте на Unity3D v.5.4.3.p1 OK SDK v. 1.0.25 для авторизации, но под iOS (9.1 и выше), как я понимаю судя по логам, не забирается ответ от ok{APP_ID}://authorize из-за чего не происходит перенаправления обратно в приложение.
Вот, что выводится в логе в XCode при загрузке WebView:
`2017-02-27 10:51:37.891575 TestJ7[4266:2119953] WF:
_WebFilterIsActive returning: NO

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

LOAD COMPLETE

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)`

Что выводится в логе XCode при вводе данных в поля и нажатии на кнопку "Войти":
`LOAD COMPLETE

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)`

Каких либо ошибок нет, но WebView не закрывается. Такое обнаруживается только, если в проекте есть плагин Vuforia.

P.S.: ошибка есть, если поставить точку остановки UnityOKWebView.mm в didFailLoadWithError: "ERROR: Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted"".

Не открывается виджет приглашения в приложение

Вызов метода OK.OpenInviteDialog(OKRequestCallback callback, Action onClosed, string defaultMessage, params string[] selected) приводит к ошибке.

Лог

04-07 11:08:28.661 25643 25665 W Unity   : [./Runtime/Mono/MonoBehaviour.cpp line 1655] 
04-07 11:08:28.661 25643 25665 W Unity   : (Filename: /Users/builduser/buildslav
04-07 11:08:28.661 25643 25665 W Unity   : The referenced script on this Behaviour (Game Object 'Invite Widget') is missing!
04-07 11:08:28.661 25643 25665 W Unity   : UnityEngine.Object:Internal_CloneSingle(Object)
04-07 11:08:28.661 25643 25665 W Unity   : UnityEngine.Object:Instantiate(Object) (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEngineObject.cs:88)
04-07 11:08:28.661 25643 25665 W Unity   : OKWidgets:OpenInviteDialog(OKRequestCallback, Action, OKUserInfo[], String, String[], Action`4)
04-07 11:08:28.661 25643 25665 W Unity   : Odnoklassniki.<OpenInviteDialog>c__AnonStorey19C:<>m__177(OKUserInfo[]) (at ***\Assets\Odnoklassniki\Scripts\AbstractOdnoklassniki.cs:849)
04-07 11:08:28.661 25643 25665 W Unity   : Odnoklassniki.<GetInfo>c__AnonStorey193:<>m__16A(Response) (at ***\Assets\Odnoklassniki\Scripts\AbstractOdnoklassniki.cs:603)
04-07 11:08:28.661 25643 25665 W Unity   : Odnoklassniki.<Api>c__AnonStorey190:<>m__167(Request) (at ***\Assets\Odnoklassniki\Scripts\AbstractOdnoklassniki.cs:505)
04-07 11:08:28.661 25643 25665 W Unity   : HTTP.<WaitForResponseAndCallback>d__0:MoveNext()

При это, искомый prefab имеется в ресурсах одноклассников,

Источник установки приложения

Здравствуйте. С помощью какого метода можно узнать, что приложение установлено из каталога ОК ?

Я так понимаю, для Android SDK это sdk.getInstallSource. А есть ли на его основе какой-либо метод в Unity SDK?

OK.OpenInviteDialog на iOS возвращает APP_DEVICE_NOT_ALLOWED

appId=1249885696, версия SDK 1.0.25, доступ к приглашению пользователя через friends.appInvite (APP_INVITE) получен, на Android приглашения работают. На iOS при установленном OK клиенте отправляю приглашение другому iOS пользователю с установленным OK клиентом, в ответ получаю: sdk.appInvite failed -> APP_DEVICE_NOT_ALLOWED. [email protected] с этим вопросом отправили сюда.

Android. Unity SDK. WebViewClient.onReceivedSslError?

Здравствуйте! При добавлении SDK для юнити в проект и попытке публикации приложени яна Google Play.
Магазин отвергает приложение из-за следующей ошибки:

Security alert
Your application has an unsafe implementation of the WebViewClient.onReceivedSslError handler. Specifically, the implementation ignores all SSL certificate validation errors, making your app vulnerable to man-in-the-middle attacks. An attacker could change the affected WebView's content, read transmitted data (such as login credentials), and execute code inside the app using JavaScript.
To properly handle SSL certificate validation, change your code to invoke SslErrorHandler.proceed() whenever the certificate presented by the server meets your expectations, and invoke SslErrorHandler.cancel() otherwise. An email alert containing the affected app(s) and class(es) has been sent to your developer account address.
Please address this vulnerability as soon as possible and increment the version number of the upgraded APK. For more information about the SSL error handler, please see our documentation in the Developer Help Center. For other technical questions, you can post to https://www.stackoverflow.com/questions and use the tags “android-security” and “SslErrorHandler.” If you are using a 3rd party library that’s responsible for this, please notify the 3rd party and work with them to address the issue.

Если удалить SDK Одноклассников - то магазин принимает приложение.

Проблема с перенаправлением из WebView на Android и конфликты с google-play-services

Здравствуйте, использую Unity3D v 2018.3.11f и OK SDK v. 1.0.25 при подключении вашего SDK были проблемы:

  1. Конфликт с файлом google-play-services.jar , который не позволял сделать билд с ошибкой:
    google play services error
  • Решение оказалось простым - удалить его.
  1. SDK заработал и WebView открывался, но после авторизации и нажатия на кнопку "Войти" ничего не происходило(WebView работал)
  • проблема была в конфликте имён, у меня на сцене был GameObject, который контролировал всю логику одноклассников, назывался он Odnoklassniki, а в java- коде SDK из метода UnityPlayer.UnitySendMessage - отправлялся запрос в GameObject с названием Odnoklassniki и в итоге приходил на мой
    Войти ошибка

Не сохраняются токены после выключение приложения

Возможность сохранения токенов просто отсутствует. AccessToken, RefreshToken, AccessTokenExpiresAt и RefreshTokenExpiresAt нигде не сохраняются и, соответственно, при старте приложения они не валидны. Отсюда еще одна пролбема: всегда после перезапуска приложения ОК разлогинен.

Проблемы в Xcode

Здравствуйте. Делаем билд для IOS в Windows. Без плагина OK, приложение компилируется и работает как на Android, так и на IOS. Но при добавлении плагина Xcode начинает генерить ошибки (на Android при это все работает). Нужно ли для работы плагина вручную добавлять в Xcode дополнительно библиотеки, фреймворки, прописывать флаги ?

Вот скриншот небольшой части ошибок

screenshot_5

Проблемы после вчерашнего изменения (getInstallSource)

Появились след ошибки
): Error CS0535: "Odnoklassniki.AbstractOdnoklassniki" не реализует член интерфейса "Odnoklassniki.IOdnoklassniki.IsRefreshTokenValid" (CS0535) (Assembly-CSharp)

Error CS0535: "Odnoklassniki.AbstractOdnoklassniki" не реализует член интерфейса "Odnoklassniki.IOdnoklassniki.RefreshAccessToken(Odnoklassniki.OKRefreshTokenCallback)" (CS0535) (Assembly-CSharp)

Краш при попытке открытия окна инвайтов, когда всё друзья уже играют

Если все друзья игрока уже играют в игру, то при попытке вызвать окно инвайта будет краш. Связан он с тем, что ответ с сервера приходит с ошибкой:
OUT -> https://api.odnoklassniki.ru/fb.do?access_token=a5ipa.34atc0581l1e4l1x6l3k41srvd146&sig=adea1bc1723a763861b1c24b2d000c4b&application_key=CBAOLKELEBABABABA&emptyPictures=False&fields=pic128x128%2cname&format=JSON&method=users.getInfo&uids=
IN www <- {"error_code":100,"error_msg":"PARAM : Missing required parameter uids","error_data":null}
Видно, что на сервер отправляется пустой список друзей, так как по коду он формируется из друзей, которые не играют.

Ряд вопросов

Добрый день. Решил разом написать все вопросы . Вопрос первый - с новой версией SDK перестала работать авторизация OK.Auth (ничего не происходит, до этого работала). Если вызывать ее в Editor, то в консоли выводится следующее сообщение

Authorized via OAuth!
UnityEngine.Debug:Log(Object)
Odnoklassniki.AbstractOdnoklassniki:OAuthSuccess(String) (at Assets/Odnoklassniki/Scripts/AbstractOdnoklassniki.cs:284)
Odnoklassniki.AbstractOdnoklassniki:AuthWithDebugToken() (at Assets/Odnoklassniki/Scripts/AbstractOdnoklassniki.cs:980)
Odnoklassniki.AbstractOdnoklassniki:Auth(OKAuthCallback) (at Assets/Odnoklassniki/Scripts/AbstractOdnoklassniki.cs:232)
Odnoklassniki.OK:Auth(OKAuthCallback) (at Assets/Odnoklassniki/Scripts/OK.cs:97)
OKController:OKLogin() (at Assets/Scripts/Utilitys/OKController.cs:34)
UnityEngine.EventSystems.EventSystem:Update()

Вопросы по требованиям допуска в каталог ОК

  1. Проверять наш ли пользователь к вам пришел или нет, необходимо с помощью метода sdk.getInstallSource. Метод добавили, но я так понял по нему мы получаем идентификатор рекламной системы, если приложение установлено из каталога ОК ?

  2. "Отсылать нам статистику вашего приложения используя метод sdk.reportStats.Обязательным является событие launch (запуск приложения нашим пользователем), остальные параметры на ваше усмотрение; " Есть ли такой метод в Unity SDK ?

  3. "Обеспечить пользователя возможностью приглашать своих друзей в игру/высылать им уведомления с помощью метода sdk.sendNote;" это метод OpenInviteDialog, а вот для уведомления какой ?

  4. Обеспечить пользователя возможностью публиковать в свою ленту пост об игре с помощью данного виджета; Это OpenPublishDialog ?

  5. В случае совершения платежа нашим пользователем, сообщать нам об этом с помощью метода sdk.reportPayment; ну, ReportPayment вроде есть

Использовать клиентский OAUTH вместо серверного когда ОК приложение не установлено

Сейчас запрашивается например
okauth://authorize?response_type=code&redirect_uri=ok1247429888://authorize&scope=VALUABLE_ACCESS,APP_INVITE,PHOTO_CONTENT&client_id=1247429888"

и получает в ответ
ok1247429888://authorize#error=unsupported_response_type_for_this_app

что правильно, так как надо не code авторизацию использовать http://new.apiok.ru/ext/oauth/client
а token

Проблема встроенных виджетов

проблема встроенных виджетов в том, что они ищут на сцене первый попавшийся канвас и работают с ним. таким образом у нас в виджетах (в частности в Invite Widget) был маленький текст. И так как код виджетов у вас скомпилирован в dll, поправить самому его не возможно. Пришлось сделать хак с помощью рефлексии такого вида:

var prop = typeof(OKWidgets).GetField("canvas", BindingFlags.NonPublic | BindingFlags.Static);
if(prop != null) { prop.SetValue(null, canvas.transform); }

Было бы хорошо, если бы доступ к OKWidgets.canvas был public.

Ошибка авторизации при попытке логина через установленное приложение ОК

Добрый день!
Делаем авторизацию через Одноклассники для iOS. Логин через webview работает нормально, но при попытке пройти авторизацию через установленное приложение одноклассников, приходит ошибка токена (логи ниже). Подскажите, с чем это может быть связано и как это исправить?

Requesting access token by code
Odnoklassniki.IOSOdnoklassniki:SSOAuthSuccessIOS(String)

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

OUT -> https://api.ok.ru/oauth/token.do?grant_type=author...,APP_INVITE,PHOTO_CONTENT,LONG_ACCESS_TOKEN&redirect_uri=ok1246217472%3a%2f%2fauthorize&client_id=1246217472&client_secret=757AC039E85F16DD59DBE0A2
Odnoklassniki.HTTP.Request:Send(Action`1)

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

IN www <- {"access_token":"tkn1kd5lIw5FJSm3bzDt3eSh3hhTW2EXAXZZBbDxuBYe6scajng8GU5xgLPZbh9FlW3F3","token_type":"session","expires_in":"2592000"}
Odnoklassniki.HTTP.d__0:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

Got response from tokenByCode: {"access_token":"tkn1kd5lIw5FJSm3bzDt3eSh3hhTW2EXAXZZBbDxuBYe6scajng8GU5xgLPZbh9FlW3F3","token_type":"session","expires_in":"2592000"}
Odnoklassniki.IOSOdnoklassniki:m__18(Request)
Odnoklassniki.HTTP.d__0:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

Bad response: access_token or refresh_token is not present
Odnoklassniki.IOSOdnoklassniki:m__18(Request)
Odnoklassniki.HTTP.d__0:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

Ошибка при попытке пригласить друзей (OKInviteWidget)

При использовании виджета OKInviteWidget постоянно выводится варнинг "Bad platform: should be Android or iOS". Заглянув в реализацию этого метода, я увидел, что там на самом деле просто выводится этот варнинг (без каких либо условий). Т.е. возможно это и не проблема совсем, однако там же формируется список девайсов, который потом отправляется с помощью метода sdk.appInvite. Результат этого метода - ошибка, в которой говорится, что не указан список девайсов (но он на самом деле отпрявляется пустым).
Таким образом инвайты просто не работают.

AppStore не пропускает приложение с авторизацией в ОК на старте

Legal - 5.1.1

We noticed that your app requires users to register with personal information to access non account-based features. Apps cannot require user registration prior to allowing access to app content and features that are not associated specifically to the user.

We've attached screenshot(s) for your reference.

Next Steps

User registration that requires the sharing of personal information must be optional or tied to account-specific functionality. Additionally, the requested information must be relevant to the features.

PARAM : Parameter 'PHOTO id' is invalid при публикации

var textureList = new List { tex2D };
var media = new List
{
new OKAppMedia( "text", "urlImage", "urlImage", " ", " ", "mark" ),
new OKPhotoMedia( textureList ),
new OKTextMedia( wallpostParams[1] )
};
OK.OpenPublishDialog( WallPostDone, media );

вот что в логах:
сразу после поднятия виджета
NullReferenceException: Object reference not set to an instance of an object
at Odnoklassniki.Util.ScreenManager.AddOnScreenChanged (Odnoklassniki.Util.OnScreenSizeChange callback) [0x00000] in :0
at Odnoklassniki.OKImageWidget.Start () [0x00000] in :0
at Odnoklassniki.OKPublishWidget.Start () [0x00000] in :0

после того как нажал на публикацию
NullReferenceException: Object reference not set to an instance of an object
at Odnoklassniki.Util.ScreenManager.RemoveOnScreenChanged (Odnoklassniki.Util.OnScreenSizeChange callback) [0x00000] in :0
at Odnoklassniki.OKImageWidget.Destroy () [0x00000] in :0
at Odnoklassniki.OKPublishWidget+d__0.MoveNext () [0x00000] in :0
IN www <- {"error_code":100,"error_msg":"PARAM : Parameter 'PHOTO id' is invalid.","error_data":null}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.