Integrarea OneDrive API cu Unity 3D (Programare, C#, Api, Unity3D, Onedrive, Fileshare)

Costin Grigore a intrebat.

Aș dori să știu dacă este posibilă integrarea directă a OneDrive API cu Unity 3D. Încerc să încarc fișiere de imagine într-un cont OneDrive folosind C#, însă în documentația Microsoft nu se menționează cum se poate realiza acest lucru.

Comentarii

  • Vă rog să oferiți exemple de cod pentru a arăta doriți ați încercat. De asemenea, descrieți ce anume nu funcționează, cum ar fi erorile aruncate, mesajul de eroare. În plus, adăugați versiunile de framework-uri și API pe care le utilizați. Toate aceste detalii ne vor ajuta să vă ajutăm. –  > Por developer10214.
  • Ideea aplicației mele este de a face fotografii ale unui utilizator și de a le stoca într-un cont OneDrive ca parte a unui proiect de cercetare. Folosesc Unity3D în acest scop, deoarece una dintre cerințele pentru aplicație este să fie cross-platform (Android și iOS). De asemenea, am folosit pluginul Pentru această aplicație încerc să încarc fișiere în OneDrive fără ca utilizatorul să fie nevoit să se conecteze la contul său. @developer10214 –  > Por Costin Grigore.
1 răspunsuri
Tomasz Juszczak

One drive oferă doar API REST pe care o puteți utiliza cu Cereri web

Presupunând că sunteți logat și că aveți un token de sesiune și o cheie, precum și URL-ul OneDrive din API, puteți utiliza cererea PUT:PUT /drives/{drive-id}/items/{parent-id}:/{filename}:/content pentru a încărca imaginea

void Start() {
    StartCoroutine(Upload());
}

IEnumerator Upload() {
    byte[] myData = System.Text.Encoding.UTF8.GetBytes("This is some test data");
    UnityWebRequest www = UnityWebRequest.Put("ttps://api.onedrive.com/v1.0/drives/{drive-id}/items/{parent-id}:/{filename}:/content", myData);
    //add to www object all header data with session token and content type
    yield return www.SendWebRequest();

    if(www.isNetworkError || www.isHttpError) {
        Debug.Log(www.error);
    }
    else {
        Debug.Log("Upload complete!");
    }
}

Puteți încerca, de asemenea, pluginuri C# realizate de comunitate pentru asta, cum ar fi acesta: https://github.com/OneDrive/onedrive-sdk-csharp dar nu au mai publicat nicio modificare de 3 ani, așa că s-ar putea să nu mai funcționeze.

Comentarii

  • Am creat o nouă aplicație folosind Microsoft Azure pentru a accesa contul OneDrive prin Unity. După ce am creat noua aplicație, am stocat ID-ul aplicației, precum și un token pe care l-am creat. Cum aș putea implementa acest lucru cu cererea www? De asemenea, am vrut să adaug că, în scopul acestei aplicații, utilizatorul nu se va conecta (cel puțin nu cu bună știință), aplicația va trimite date de pe dispozitiv și le va stoca într-un cont OneDrive (funcționalitate similară cu cea a unui server). –  > Por Costin Grigore.
  • @CostinGrigore ați reușit să rezolvați această problemă? Dacă da, vă deranjează să împărtășiți răspunsul? –  > Por Mad.
  • @Mad Din păcate, după ce am luat legătura cu Microsoft, m-au informat că în prezent nu există nicio soluție pentru această problemă. Tehnologia există pentru a face acest lucru, însă nu au documentat-o pentru a fi folosită de către public. În acest moment, singurul lucru pe care îl permit este accesarea contului Microsoft folosind procesul Microsoft Authenticator. –  > Por Costin Grigore.