OneDrive
Welcome to your new gem one_drive!
You can use this gem to list your Microsoft OneDrive drives and read and write them.
To experiment with that code, run bin/console
for an interactive prompt.
Installation
Add this line to your application's Gemfile:
gem 'one_drive'
And then execute:
$ bundle
Or install it yourself as:
$ gem install one_drive
Usage
-
Initialize
one_drive = OneDrive::V1.new(client_id, redirect_uri, scope)
-
Generate code url to get refresh_token
one_drive.code_url
Or Directly generate token url
one_drive.token_url
Visit the url to generate the token
-
Set your token which you get on visiting the above url
one_drive.set_token token
Note: only token is required you can leave expires_in and token_type as blank for expires_in=3600 and token_type='bearer'
-
List out all your drives
drives = @one_drive.get_drives
drives = @one_drive.get_drives('users',id)
drives = @one_drive.get_drives('sites',id)
drives = @one_drive.get_drives('groups',id)
After calling the last function you can fetch last drive list which you fetched by calling
one_drive.drives
-
Search
one_drive.search(options)
Here options is hash with
:search_text
as required key (this is used as search text) Optional keys are:drive_id
:group_id
:site_id
:user_id
Example: Say I want to search file name 'dummy' in a drive (123) then we need to pass options as
one_drive.search({search_text: 'dummy',drive_id: '123'})
-
Download Item
one_drive.download(options)
Here options is hash with:item_id
or:item_path
is required key (this is used as search item) Optional keys are:drive_id
:group_id
:site_id
:user_id
-
Recent Drive
one_drive.recent
-
Special Folder
one_drive.get_special_folder_by_name('Photos')
-
My Drive
one_drive.my_drive
-
Items Shared with me
one_drive.items_shared_with_me
-
Get Item
one_drive.get_item options
Here options is hash with:item_id
or:item_path
is required key (this is used as search item) Optional keys are:drive_id
:group_id
:site_id
:user_id
Other Functions are
`one_drive.get_children_of_special_folder(name)`
`one_drive.get_children_of_special_folder()`
Once you have visited the functions the result is stored in attributes
:client_id,:scope,:redirect_uri,:code,:token,:drives,:items,:current_drive, :current_item,:expires_in,:token_type,:my_drive,:recent_drive,:special_drive,:special_items, :item
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/DimoMohit/onedrive. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the OneDrive project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.