If we have a Google Sheets document that has inserted images/drawings in one Google Drive account and we use the API to copy it to another Google Drive account, how do we ensure that the new account has access to the inserted items?
At the moment it appears that the first time the user opens the newly copied document, the image content isn't displayed and when they try to edit the embedded images/drawings they get a warning that they don't have access to those items. However the second time they open the Google Sheet they then can see the items and have access to edit them.
Is this an issue with Google Drive as a whole? Is there anything we can do to work around it?
Narrowed things down a bit without using the API...
Create a sheet and insert a new drawing.
Copy the sheet.
Share the copy with someone else.
They don't have permission to see the drawing.
If you share the original they can see the drawing in the original.
This appears to be an issue with Google Sheets itself, since you replicated the problem using the UI as well. The best place to report product issues is the Google Docs Help Forum.
Related
Is it possible that we can create a log in panel on google sheets which can be access by only shared person once they log in and after that they get the only tab which is shared with them instead of whole google spreadsheet
I heard it is possible but haven't seen somewhere ..!!!
You could create a log sheet "which can be access by only shared person once..." and could then share by user.
Still.
It would not really serve your purpose since anyone with editor privileges will always have access to the history of the whole sheet (where one can easily see who edited what and when).
I am currently making a Google Site where I would like to embed my contacts. The contacts I am referring to can be found if I log into my gmail account and click on ->Mail->Contacts on the upper left hand corner. Then, on the next page, I click the "Other Contacts" link.
I have tried using a google spreadsheet to read in this data and then displaying that in the Google Site. However, I ran into a few issues. I tried the IMPORTHTML("https://mail.google.com/mail/u/0/#contacts/group/26ae/Other+Contacts","table",1). This didn't return anything. I tried to change the second parameter to 'list' and for the third parameter, I went up to 30 so I doubt that is the issue.
I also tried this approach but no luck. https://www.import.io/post/how-to-get-live-web-data-into-a-spreadsheet-without-ever-leaving-excel/
What would be the best way to resolve this issue of getting those contacts to show up in my site?
I see three options:
Export your contacts to a CSV and import that into a sheet. The downside is that this is not syncing, it is a static update, so maintaining contacts can be problematic.
Use this addon. I have never used it and can offer no advice either way. I believe your domain Admin will need to set it up and I do not think it populates a spreadsheet, so you won't be able to embed your contacts.
Write a custom Google Apps Script. The benefit here is you could use a script to also display the contacts in a clean fashion, with the name as a link, or otherwise. The downside here is you need to write a script. It is javascript based so if you have someone who can do that, it may be your best option. I have done this for a staff directory, which lists all of our domain accounts:
So, I have a digital tap list for a bar and I'm using Google Spreadsheets as a back end for the data. When a keg runs out I want for the bar staff to be able to copy and paste the oncoming beer over the row of cells corresponding to the keg that just ran out. What would be the best way to automate a tweet when this happens? So when they change the keg, and once they update the spreadsheet that a tweet is automatically sent out saying what new beer has been put on tap.
As far as connecting to twitter, which uses OAuth, from Apps Script, you'll need to:
reference the sample OAuth1 apps script library. This github repo has the info on how to reference that library, along with sample code for reference.
wire up to Twitter. That repo also has a sample showing integration with Twitter.
The other code you'll need in Apps Script should implement onEdit(e), to handle the edit event. You'll have to do some work to inspect the range to make sure the edit is one you care about.
I'm working on some .Net code to collect some data on a server and put it in a Google Spreadsheet. The job needs to run once a day, clear out the sheet and repopulate it. I have all that working, but I can't get the authorization right. I can do it with my personal Google credentials, and I can get it to work with OAUTH by allowing the app to manipulate all my spreadsheets using the https://spreadsheets.google.com/feeds scope. But, what I really want to do is allow my script to read and write just one sheet. Is that possible, and how would I do that?
You are using very old scopes. Look at the drive.file scope
https://developers.google.com/drive/web/scopes
Its not possible using the spreadsheets API. That api is very old and doesnt have a scope for indivdual files.
it might be possible by creating a spreadsheet using the drive API by uploading a CSV with conversion, but you will need permission to create new drive files and that also means permission to the entire drive.
Workaround: Create a new google account and share the spreadsheet with it. Do the OAuth using the new account.
#Zig Mandel is right - the API (Gdata style) wants access to all spreadsheets. But you can workaround the problem using a new account.
I have a problem in my reporting, i create every day a google doc tracker where all the stack holders in my department update their work progress in it, so i have plenty of spreadsheets to monitor which is a hassle, here is what im trying to do, I'm trying to create a big google doc tracker where i can have an access over date applied in the normal spreadsheets, all what i need is the spreadsheet's URLs that exist in my google drive to be retrieved in this big tracker, with this i'll be able to drive all the needed data from the normal trackers.
PS: I'm not good with google scripts.
You can use the Drive Service to get a list of files with MIME type "application/vnd.google-apps.spreadsheet" using getFilesByType. This returns a FileIterator, which you can use to individually get each Spreadsheet file. From there, just use getUrl() to find the URL's. The FileIterator link has examples of how to loop through all the matching files.