Publishing a Google Slides add-on - google-slides-api

I would like to ask you for some advice: I developed a really simple Google Slides add-on that makes my life easier when I use slides. The problem is that the instructions seem to be so generic for diverse google products (apps, extensions, addons, etc) and I think I'm missing something.
I followed the instructions in the official docs. I created a script with the Scripts Editor and I choose to publish it as an addon. I completed the required fields and I was redirected to the Deveoper Dashboard, that does not let me upload the add-on with no manifest file. At this point, a manifest wasn't required by Google Slides, so I created one with no much idea and validating it with the error messages that the uploading tool throws. It is something like this:
{
"manifest_version": 2,
"name": "The name",
"version": "2",
"timeZone": "America/Argentina/Buenos_Aires",
"dependencies": {},
"exceptionLogging": "STACKDRIVER"
}
I was able to upload that manifest, but the package is listed as a Chrome extension and not as a Google Slides add-on (creating a new slide and accessing document > addons > download addons).
I spent 5 hours reading how to do it ok, but I could not achieve it and I'm really tired of guessing. Can anyone point me to a concrete documentation/tutorial/video in a concrete Google Slides scenario?
PS: if I try to update the add-on from the Script Editor, by publishing it again, it tells me "This item is not an app, please remove app section from manifest". But there is no manifest in the Script Editor, and there is no app field in the manifest uploaded in the Deveoper Dashboard. And by the way, publishing in the Deveoper Dashboard forces you to have a manifest...
Thanks, thanks, thanks in advance.

To create and publish Google Slides add-on, follow these steps:
Open https://drive.google.com.
Create new Google Apps Script project by selecting New - More - Google Apps Script.
Save project by selecting from Google Apps Script editor menu File - Save.
Popup window will ask you to enter your project's name, fill it and press OK.
Code your add-on functionality.
For publishing add-on, select from Google Apps Script editor menu Publish - Deploy as web add-on...
In opened modal, fill needed details (Add-on Type: Slides; Version: New; Post-install tip) and click Create web store draft.
https://chrome.google.com/webstore/developer/edit/ADDON_ID will open.
Scroll down the page and click Publish changes.
Your add-on is published!

Related

TextRotation angle is never set in Google Sheet API

I'm using Google Sheets API v4 from Java Client. I'm trying to get format from Cell class. Everything goes fine.
TEXT ROTATION
I'm succeed in getting TextRotation element with Vertical property set but, angle property is never set, what ever I put on source Google Sheets document.
Whatever the angle value selected in Google Sheet App, angle property is never set.
I've tried to inspect returned JSON, to know if the issue is in Java Client.
But JSON REST API also never returns this property.
Current Result:
.
Expected Result:
Issue and workaround:
When I saw CellFormat of the official document, I thought that the value of textRotation can be retrieved by the fields of sheets(data(rowData(values(userEnteredFormat(textRotation))))) when the method of "spreadsheets.get" is used. But when I tested this, no values are returned. So I thought that this might be a bug. And, when I searched this at the Google issue tracker, I found https://issuetracker.google.com/issues/146274218. From this situation, in the current stage, it seems that the values of textRotation cannot be retrieved by the method of "spreadsheets.get" of Sheets API.
When you want to retrieve the value of textRotation using a script, as a current workaround, you can achieve it using the Web Apps created by Google Apps Script as a wrapper. In this answer, I would like to propose the workaround.
When this workaround is reflected to the flow for your situation, it becomes as follows.
Usage:
1. Create new project of Google Apps Script.
Sample script of Web Apps is a Google Apps Script. So please create a project of Google Apps Script.
If you want to directly create it, please access to https://script.new/. In this case, if you are not logged in Google, the log in screen is opened. So please log in to Google. By this, the script editor of Google Apps Script is opened.
2. Prepare Web Apps side. (server side)
Please copy and paste the following script (Google Apps Script) to the script editor. This script is for the Web Apps. This Web Apps is used as an API.
Server side: Google Apps Script
function doGet(e) {
const key = "sampleKey";
const id = e.parameter.spreadsheetId;
const sheetName = e.parameter.sheetName;
if (e.parameter.key != key || !id || !sheetName) {
return ContentService.createTextOutput(JSON.stringify({message: "Error."})).setMimeType(ContentService.MimeType.JSON);
}
const sheet = SpreadsheetApp.openById(id).getSheetByName(sheetName);
const textRotations = sheet.getDataRange().getTextRotations().map(r => r.map(c => ({angle: c.getDegrees(), vertical: c.isVertical()})));
return ContentService.createTextOutput(JSON.stringify(textRotations)).setMimeType(ContentService.MimeType.JSON);
}
3. Deploy Web Apps.
On the script editor, Open a dialog box by "Publish" -> "Deploy as web app".
Select "Me" for "Execute the app as:".
By this, the script is run as the owner.
Select "Anyone, even anonymous" for "Who has access to the app:".
Of course, you can use the access token for this situation. But in this case, as a simple setting, I use the access key instead of the access token.
Click "Deploy" button as new "Project version".
Automatically open a dialog box of "Authorization required".
Click "Review Permissions".
Select own account.
Click "Advanced" at "This app isn't verified".
Click "Go to ### project name ###(unsafe)"
Click "Allow" button.
Click "OK".
Copy the URL of Web Apps. It's like https://script.google.com/macros/s/###/exec.
When you modified the Google Apps Script, please redeploy as new version. By this, the modified script is reflected to Web Apps. Please be careful this.
3. Testing.
As a simple test, when it requests to the Web Apps using a curl command, it becomes as follows. Please set the spreadsheet ID and sheet name. When the Web Apps is correctly deployed, the values are returned.
$ curl -L "https://script.google.com/macros/s/###/exec?spreadsheetId=###&sheetName=Sheet1&key=sampleKey"
Result:
The data range is used for retrieving the values. So for example, when the values are set to the cells "A1:C3" in "Sheet1", the following result is returned.
[
[{"angle":30,"vertical":false},{"angle":0,"vertical":true},{"angle":0,"vertical":false}],
[{"angle":30,"vertical":false},{"angle":30,"vertical":false},{"angle":0,"vertical":false}]
]
In this case, the cells "A1, A2, B2" have the text rotation with 30 degree. And, the cell "B1" has the vertical direction.
Note:
When you modified the script of Web Apps, please redeploy the Web Apps as new version. By this, the latest script is reflected to Web Apps. Please be careful this.
References:
CellFormat
getTextRotations()
Web Apps
Taking advantage of Web Apps with Google Apps Script
Finally, I've written a JS Library : screen-rotation.js to manage all this stuff.
screenorientation().change(function(){
// My event management
});
It supports iOS, Android & desktop browsers

Is there a way to export the enabled Conversion Variables, Traffic Variables and Success events to excel in Adobe Analytics?

I wanted to export the list of variables defined in Adobe Analytics, to create a document. But then other than copy paste i don't see any other way to do the same. I have to do the same for more than 70 Report suits. I feel its too much manual work.
I have tried copy paste. Which i don't want to do, as its too much manual work.
Is there a way which i am missing in Adobe Analytics which does this easily in one click or something? As in Google Analytics Google Tag Manager we have an option to export the container which i don't see in Adobe Analytics.
Thank you #CrayonViolent. But i found one more way to get the list of variables defined.
The admin Report Suite Manager lets you to do the same.
Analytics > Admin > Report Suites
Select Report Suite
Click on Download:
This will Generates an Excel spreadsheet of all settings for the currently selected report suites.
I hope this helps.
Both the API and export options are great.
Another option is to use ObservePoint's free Google Sheets add-on to pull all props, eVars, listVars, processing rules, etc. into a spreadsheet. I believe it's limited to one report suite at a time, but I use it regularly to generate sharable and editable SDRs. (The add-on supports making updates in the spreadsheet and pushing them back up to Adobe Analytics.)
https://chrome.google.com/webstore/detail/observepoint-labs/ohpgoaikjjdkfjalakolccdibikodoeo?hl=en

Export Data from Avaya CMS

Bit of a long one...
I am trying to reliably export data from Avaya CMS, currently the set up I am using is a Win 2012 Server with Avaya CMS Superviser R18 installed. I have 5 report scripts which I run and they export data to a individual csv files every 3 - 5 seconds. This way was sufficient while we were using CMS Superviser R17 as it would only crash once a day, and when it did, the csv files would stop updating which triggered an email to me once the files had been 120 seconds without updating. This ensured that the reports had very little downtime as I could just quickly restart CMS superviser and the scripts (batch file) rather than having to wait for someone to report that it was no longer updating.
However with CMS SUperviser R18, the software doesn't seem to crash, instead the csv files keep getting updated, but with incorrect data. I am still trying to troubleshoot that issue to find out exactly what is causing it to go out of whack, but while that is ongoing I am also trying to look at alternative solutions.
The reports I am trying to export are custom reports that others in the company have created, and they appear under the designer category
I looked at CLINT but I cannot see the reports I am looking for in there so I ssh'd into the server and using xterm terminal I can view the CMS menus and go through them. In here I noticed that you cannot view any reports under the Integrated tab, nor any reports under the Designer Category of the Real-Time or Historical tabs. I also noticed that there is a "custom reports" section in the menu, although I see no reports under this menu item, just two empty categories (Real-time and Historical)(Pics attached)
So my questions are:
1 Do you know if "Custom Reports" is where reports from the designer category should show up? If not, do you know is it possible to access those reports through the ssh menu at all?
2 Has anyone any other ideas as to how to export the data from CMS to a csv file?
Thank you for your time.
The "Custom Reports" in the cms menu you show on the screenshots is different to "Reports" in the Supervisor.
You can read about Custom Reports here (a little old, but still relevant):
https://downloads.avaya.com/elmodocs2/multivantage/215822_3/215822_3_1_CMS_Reports.pdf
If you create reports in the "Custom Reports" subsystem then you can run them using /cms/toolsbin/clint. Note that you must recreate the "Reports" reports in the "Custom Reports" to be able to run them through clint.
You can create command files so you can script clint, then you just have to run it with a scheduler. You can read about scriping clint here:
http://www.tek-tips.com/viewthread.cfm?qid=397058
You can also establish a direct connection to the Informix database on CMS but you can not access real-time data there.

Find features of a non Microsoft program

I'm not sure how to even ask this question, but let's say I have a program such as Google Chrome. How would I find out the "features" of it so I can use PowerShell to modify it.
For example, how would I have Chrome open a web page and click a button.
I know for IE, you can use $ie.document.getElementById("loginform").submit() to click a button.
Thank you,
Tony
You can't ever really get the same amount of control over non-Windows programs using Powershell.
In terms of Chrome, you could simply open the browser and go to a webpage with:
$Start-Process "chrome.exe" "www.google.com"
There is generally not that much more for further functionality, but with Chrome you may be able to do things like change settings and configuration. Check out the (large) JSON file Preferences and other config files, which you can find in Chrome's local appdata folder (Win+R, %localappdata%, Google/Chrome/User Data/Default). I'm not too sure but it may also be a bad idea to mess around with these files.
I also did a Google search and found this third party powershell tool for browsers, called Selenium. Here's the list of extensions.

Pentaho 5.0.1 CE Adding folder to pentaho-solutions directory

How do I get a folder to appear in the browser after adding it to \pentaho-solutions in Pentaho 5.0.1 CE. The documentation I read does not seem to work with this new version.
1. Create a new directory in /pentaho/server/biserver-ee/pentaho-solutions/.
Use underscores instead of spaces in the solution directory name. Ensure that the directory has the appropriate user
and group ownership to be writable from the BI Platform.
2. Using an XML-aware text editor (or Design Studio), create a file named index.xmlin your new solution directory.
3. Copy the following text into the index.xml file, changing the content accordingly:
***<index>
<name>Example Solution</name>
<description>This solution contains examples I created while learning to
work with action sequences.</description>
<icon></icon>
<visible>true</visible>
<display-type>icons</display-type>
</index>***
4. Save the file and close the text editor.
5. Log into the Pentaho User Console as an administrator.
6. Refresh the solution repository cache by going to the Toolsmenu, then selecting the Refreshsubmenu, then
clicking on Repository Cache.
You now have a new solution directory. It will show up in all file dialogues in the Pentaho User Console as well as the
Solution Browser in the left pane.
Every time you add or edit an action sequence to your solution directory, you must refresh the repository cache as
explained above. Each user currently logged into the Pentaho User Console must also refresh their session cache; this
is best done by re-logging into the Pentaho User Console.
I am using Pentaho design studio to develop an xaction sequence script. I followed this procedure:
1. In Design Studio, go to the Filemenu, then select New, and click on Other...in the sub-menu.
The Newwindow will appear.
2. In the Newwindow, click the triangle next to Pentaho, select New Action Sequence Wizard, then click Next.
3. In the File namefield, type hello_world.xaction.
4. Select Hello Worldfrom the Templatedrop-down box, then click Finish.
The wizard will generate the new file and bring you back to the workbench.
5. Click on HelloWorldComponentin the Process Actionssection on the left.
The right side of the screen will change to show the options available for this action: Nameand Message. The
Name field controls the name of the component in the Process Actions list on the left; it doesn't do anything else of
note. The Message field contains the text that will appear on the screen when the action sequence is run. It is prepopulated with %quote, which is a token that represents a quote message in a nonexistent properties file. Pentaho
used to provide properties files for each example, but they have been removed from the standard Pentaho Business
Analytics distribution.
6. Replace the %quotewith a sufficiently inspiring message.
Alternatively, you could create a hello_world.propertiesfile and populate it with the appropriate messages and
tokens, but that has no advantage unless you intend to internationalize this action sequence.
7. Save the file.
You now have a working action sequence that prints a short text message: "Hello, World." plus whatever you typed into
the Message field. The first part of the message is determined by a message bundle packaged with the Pentaho Web
application archive.
To test the action sequence, use the Test tab if you are on Windows or OS X, or log into the Pentaho User Console and
run it from the Solution Browser.
Running the sample xaction fails with
Sorry. We really did try.
Something went wrong. Please try again
or contact your administrator.
I figure this is because pentaho cannot locate the xaction file as specified in the file path when I generate the url from within design studio. The folder I created within the solution directory does not appear in the browser directory list despite refreshing the cache. Any help?
With Version 5 the files and folders are no longer stored in "/pentaho/server/biserver-ee/pentaho-solutions/..."
It is stored now in a jackrabbit repository.
You can create folders and upload files in the user console.
I did mistake after starting biserver 5.2. Unexpectedly i deleted Public folder after configuring to jackrabbit. Now how do i create the folder so that i can see Public and Home Folders.
Sorry for getting back to this question some time later, just in case someone searches something related to Pentaho repositories management with no success, i hope this information can help.
Just to make things more clear, i'm using version 5.2.x and i'm supposing you want to create a new folder on the root directory of Browse Files screen, something that is not allowed on Pentaho5 CE Web Console.
The answers about repository management based on JackRabbit are correct, so the old way we used to configure new "solutions" folders doesn't work anymore. From version 5 on, Pentaho exposes an interesting REST api that allows you doing things not allowed in web console.
For instance, for creating a folder in root directory you should create a http REST PUT request against Pentaho Server (using tools like curl or if you appreciate Google Chrome, something like Advanced Rest Client, etc.) using the following URL:
http://localhost:8080/pentaho/api/repo/dirs/:new_directory_name?userid=admin&password=password
Pentaho repository directory REST api is documented here:
http://javadoc.pentaho.com/bi-platform500/webservice500/resource_DirectoryResource.html
It's worthy to spend some time reading REST API the documentation.

Resources